14
votes

I get a error when I use maven to build my project.so please help! thank you for your help

Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2.1:assembly (make-assembly) on project newstart-app-ithelp: Execution make-assembly of goal org.apache.maven.plugins:maven-assembly-plugin:2.2.1:assembly failed: For artifact {null:null:null:jar}: The groupId cannot be empty. cause : Execution make-assembly of goal org.apache.maven.plugins:maven-assembly-plugin:2.2.1:assembly failed: For artifact {null:null:null:jar}: The groupId cannot be empty. Stack trace : org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2.1:assembly (make-assembly) on project newstart-app-ithelp: Execution make-assembly of goal org.apache.maven.plugins:maven-assembly-plugin:2.2.1:assembly failed: For artifact {null:null:null:jar}: The groupId cannot be empty.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
    <groupId>com.feinno.app</groupId>
    <artifactId>root-pom</artifactId>
    <version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<groupId>newstart.app</groupId>
<artifactId>newstart-app-ithelp</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>newstart-app-ithelp</name>
<url>http://maven.apache.org</url>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2.1</version>
            <configuration>
                <appendAssemblyId>false</appendAssemblyId>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <mainClass>com.newstart.app.ithelp.ITHelpBean</mainClass>
                    </manifest>
                </archive>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>assembly</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <verbose>true</verbose>
                <fork>true</fork>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.4.3</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.16</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpmime</artifactId>
        <version>4.1.2</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.0</version>
    </dependency>
    <dependency>
        <groupId>com.feinno.app</groupId>
        <artifactId>feinno-app-common</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.2.0</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.24</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>0.2.9</version>
    </dependency>
    <dependency>
        <groupId>spring-aop</groupId>
        <artifactId>spring-aop</artifactId>
        <version>3.2.3</version>
    </dependency>
    <dependency>
        <groupId>spring-beans</groupId>
        <artifactId>spring-beans</artifactId>
        <version>3.2.3</version>
    </dependency>
    <dependency>
        <groupId>spring-context</groupId>
        <artifactId>spring-context</artifactId>
        <version>3.2.3</version>
    </dependency>
    <dependency>
        <groupId>spring-core</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.2.3</version>
    </dependency>
    <dependency>
        <groupId>spring-jdbc</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>3.2.3</version>
    </dependency>
    <dependency>
        <groupId>spring-tx</groupId>
        <artifactId>spring-tx</artifactId>
        <version>3.2.3</version>
    </dependency>
    <dependency>
        <groupId>spring-expression</groupId>
        <artifactId>spring-expression</artifactId>
        <version>3.2.3</version>
    </dependency>
    <dependency>
        <groupId>IKAnalyzer</groupId>
        <artifactId>IKAnalyzer</artifactId>
        <version>6</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-core</artifactId>
        <version>3.6.0</version>
    </dependency>
    <dependency>
        <groupId>net.sf.ehcache</groupId>
        <artifactId>ehcache-core</artifactId>
        <version>2.6.0</version>
    </dependency>
    <dependency>
        <groupId>linq4j</groupId>
        <artifactId>linq4j</artifactId>
        <version>1.0</version>
    </dependency>
</dependencies>
<distributionManagement>
    <snapshotRepository>
        <id>snapshots</id>
        <url>http://10.10.208.92:8081/content/repositories/snapshots</url>
    </snapshotRepository>
</distributionManagement>

7
It says, The groupId cannot be empty. post the pom.xml - Abimaran Kugathasan
What were you trying to do exactly? Which command? Also, did you read the error message? - Cedric Reichenbach
Are you running mvn clean install, or? - vikingsteve
Maybe you could try and clean the .m2-folder manually, and then run mvn install on your project? Then after that, run your above command to see if the problem persists. - user1186155

7 Answers

26
votes

I have fixed this issue by deleting local .m2/repository folder. The build is successful now.

7
votes

And mine has a different solution. I had a POM that had a <dependencyManagement> entry for the jar without any <version>, and it had a <dependencies> entry for the jar with a <version>. Plus, the parent POM had a <dependencyManagement> entry with the same <version>. Apparently this confused Maven (3.3). The build worked fine, but the packaging did not.

Fix: remove <dependencyManagement> entry in the child POM, and remove the <version> from the <dependencies> entry in the child POM.

In code, here is the broken situation:

Parent pom.xml:
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>${httpclient.version}</version>
        </dependency>
    </dependencies>
</dependencyManagement>

Child pom.xml:
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
    </dependencies>
</dependencyManagement>
...
<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>${httpclient.version}</version>
    </dependency>
</dependencies>

Post fix: parent POM is the same, child pom has just this

<dependencies>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
    </dependency>
</dependencies>
3
votes

If you look at your maven build output, there should be some warnings that say .pom is invalid, transitive dependencies (if any) will not be available. Delete all the artifacts corresponding to those poms and rebuild, you need not delete the entire repository.

1
votes

recently I stuck with the same problem. I turns that assembly-plugin doesn't propagate/report errors with dependencies:

[DEBUG] Resolving project dependencies transitively.
[DEBUG] com.g.....0.4-SNAPSHOT (selected for null)
[DEBUG]           org.springframework:spring-expression:jar:3.1.4.RELEASE:compile (selected for compile)
[DEBUG]           org.springframework:spring-asm:jar:3.1.4.RELEASE:compile (selected for compile)
[DEBUG]         trove:trove:jar:1.0.2:compile (selected for compile)
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
....
[INFO] p.....mo ....................................... FAILURE [57.144s]
[INFO] BUILD FAILURE

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.5.4:single (full) on project p...o: Execution full of goal org.apache.maven.plugins:maven-assembly-plugin:2.5.4:single failed: For artifact {null:null:null:jar}: The groupId cannot be empty. -> [Help 1]

that's all what I've got from assembly-plugin. eg. compiler warns about the broken stuff:

[WARNING] error reading /var/lib/jenkins/...org/hyperic/sigar/1.6.3.82/sigar-1.6.3.82.jar; error in opening zip file
[WARNING] error reading /var/lib/jenkins/.../org/hyperic/sigar/1.6.3.82/sigar-1.6.3.82.jar; error in opening zip file

Thus, if you've been stuck in this trouble, invoke mvn dependency:tree to troubleshoot the dependency.

0
votes

I recently came across this building a spring boot 2.2 project. Turns out the problem was an out of date maven-assembly-plugin. Our build specified 2.3 but spring boot's bom requested at least 3.1.1. Bumping to 3.2.0 (the latest at time of writing) fixed the problem.

0
votes

Check your Maven version. I had the same problem and nothing worked until I downloaded and installed a later version of Maven (from 3.2 to 3.6). This solved the issue for me. Also I was using Java 11 and from what I see here: https://mkyong.com/maven/how-to-install-maven-in-windows/

Maven 3.3+ requires JDK 1.7+
Maven 3.2 requires JDK 1.6+
Maven 3.0/3.1 requires JDK 1.5+
0
votes

For me temporarily removing the following dependency from the plugin management section solved it for me.

<plugin>
    <groupId>org.eclipse.m2e</groupId>
    <artifactId>lifecycle-mapping</artifactId>
    <version>1.0.0</version>
</plugin>

The previous error message:

Execution default-cli of goal org.codehaus.mojo:versions-maven-plugin:2.8.1:display-plugin-updates failed: For artifact {null:null:null:jar}: The groupId can not be empty. -> [Help 1]