我的任务是将使用ant
创建的java项目转换为maven
。
这就是项目的设置方式。
所有来源都存储在src
目录中。
ant
的编译目标是编译整个src
目录。
ant
的打包目标有几个子目标。
每个目标都有不同的jar,其中包含include
或exclude
个目录。
这是我采取的方法。
找出所有依赖项。将它们存储在DependencyManagement
parent pom
部分中
创建一个模块并复制整个src
目录。
编译了它。
尝试为不同的jar
文件创建单独的模块。
问题:文件是不可分的。大多数文件都依赖于其他文件。我试着分开它们。它导致创建循环依赖。因此,这一步失败了。
maven-jar-plugin
到include
或exclude
个包。 问题1 当我尝试此mvn install -P profile1,profile2
时,target
只有jar
profile2
个文件。它们都有maven-jar-plugin
,每个都有不同的finalName
。
<profile>
<id>profile1</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<includes>
<include>**/src/.../profile1/**</include>
<finalName>profile1-lib</finalName>
</configuration>
</plugin>
</plugins>
</build>
</profile>
是否有不同的命令或我做错了什么?
问题2 其中一个lib中包含多个image
个文件。
上述方法不会复制结果image
中的jar
个文件。
我理解maven
需要resources
目录中的所有资源。我将移动图像,但是现在我试图将它们包含在jar
中。
我添加了maven-resources-plugin
。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<resource>
<directory>src/main/java/jpl/mipl/mdms/FileService/komodo/ui/savannah/subscription/util/resources</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
当我运行mvn install -P profile1
时,我可以看到日志Copying # resources
。
我也可以看到它们被复制到目标/类。我给插件的路径。但它们都被复制到该目录。
我想保留结构,结果jar
仍然没有。
答案:我必须将它们移至resources
目录。 maven
是严格的。
我应该采取哪些不同的做法?
额外问题我使用的是正确的插件吗?或者我应该使用更高效的插件吗?
谢谢。
答案 0 :(得分:0)
问题1的答案:您错过了</includes>
标签。(可能是由于stackoverflow格式!)。我不确定您是否可以一次在两个配置文件上执行maven命令。这样做时,只会执行第二个配置文件。尝试分别在每个配置文件上执行命令。
问题2的答案:您错过了<resources>
开头标签。(可能是由于stackoverflow格式!)。此外,如果要保留结构,也可以在<outputDirectory>
标记中提及该结构,如下所示:
<outputDirectory>${basedir}/target/classes/src/main/java/jpl/mipl/mdms/FileService/komodo/ui/savannah/subscription/util/resources</outputDirectory>
这看起来可能很疯狂!,但是如果您的资源目录很少,则可能会起作用。如果您有更多的资源,那么这可能会很麻烦。但是无论如何,请检查这是否有帮助!