我有一个Maven多模块项目,然后我想将其中一个模块的源代码打包到jar中,并将它添加到WEB-INF / lib路径中的war(相同模块或另一个模块)。
然后,我尝试使用Maven Source Plugin,如下所示:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
然后将其添加为普通依赖项,如下所示:
<dependency>
<groupId>myModuleName</groupId>
<artifactId>myArtifactName</artifactId>
<version>1.0</version>
</dependency>
问题在于,当我使用简单的命令行运行构建时
mvn clean install
我收到的信息有误,他找不到包含源代码的工件。看起来Maven首先寻找依赖关系然后构建它。
如何正确配置?
答案 0 :(得分:1)
源包进入war文件没有意义。使用maven-source-plugin,如果你只需要在一个模块中拥有它,那么目标jar-no-fork
会更好......
此外,如果您希望将war模块中的类作为lib文件夹中的jar文件,最简单的解决方案是使用maven-war-plugin的配置:
<configuration>
<attachClasses>true</attachClasses>
<archiveClasses>true</archiveClasses>
</configuration>
这将导致在src/main/java
中的类中创建一个jar文件。