Maven创建的Jar文件没有项目代码

时间:2013-11-22 16:45:51

标签: java maven jar

我正在尝试使用Maven创建一个带有依赖项的可执行jar。并尝试使用命令制作jar:

mvn clean assembly:single
mvn clean compile assembly:single
mvn clean compile package assembly:single

我得到了jar,但它没有项目代码。请指点我正确的方向。我的POM构建部分如下所示。

<build>
    <plugins>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <configuration>
            <archive>
              <manifest>
                <mainClass>My.Full.Path.Main</mainClass>
              </manifest>
            </archive>
            <descriptorRefs>
              <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
          </configuration>
          <executions>
            <execution>
              <phase>package</phase>
              <goals>
                <goal>single</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
    </plugins>
</build>

1 个答案:

答案 0 :(得分:0)

您的项目具有非标准目录布局,请告诉maven您的源代码位于何处。

自定义目录布局的Maven配置(pom.xml)

<build>     
   <sourceDirectory>src/main/java</sourceDirectory>
   <testSourceDirectory>src/test/java</testSourceDirectory>
   <resources>
     <resource>
       <directory>src/main/resources</directory>
     </resource>
   </resources>
   <testResources>
     <testResource>
       <directory>src/test/resources</directory>
     </testResource>
   </testResources>
</build>

将目录位置(如src/main/java)替换为项目源位置。

其他源目录

如果您的现有项目包含更多src目录,则可以使用build-helper-maven-plugin:add-source

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.8</version>
    <executions>
      <execution>
        <id>add-source</id>
        <phase>generate-sources</phase>
        <goals>
          <goal>add-source</goal>
        </goals>
        <configuration>
          <sources>
            <source>some directory</source>
          </sources>
        </configuration>
      </execution>
    </executions>
  </plugin>

建筑

构建正确配置的项目使用命令

 mvn package