蚂蚁对maven的转换:正确的方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蚂蚁对maven的转换:正确的方法?相关的知识,希望对你有一定的参考价值。

我的任务是将使用ant创建的java项目转换为maven

这就是项目的设置方式。

  1. 所有源都存储在src目录中。
  2. ant的编译目标是编译整个src目录。
  3. ant的包装目标有几个子目标。 每个目标都有不同的罐子,里面有includeexclude目录。

这是我采取的方法。

  1. 找出所有依赖项。将它们存放在DependencyManagementparent pom部分
  2. 创建一个模块并复制整个src目录。
  3. 编译它。
  4. 试图为不同的jar文件创建单独的模块。

问题:文件是不可分的。大多数文件都依赖于其他文件。我试着分开它们。它导致创建循环依赖。因此,这一步失败了。

  1. 使用不同的配置文件和maven-jar-pluginincludeexclude包。

问题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很严格。我应该采取哪些不同的做法?

额外问题我使用正确的插件吗?或者我应该使用更高效的插件吗?

谢谢。

答案

对问题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>

这可能看起来很疯狂!,但如果您的资源目录很少,则可能会有效。如果你有更多的资源,那么这可能会变得很麻烦。但无论如何,检查这是否有用!

以上是关于蚂蚁对maven的转换:正确的方法?的主要内容,如果未能解决你的问题,请参考以下文章

带有边距和页面转换器的片段内的 ViewPager 无法正确呈现

Relay.js 没有正确解析组合片段

XSLT:无法将操作数转换为“结果树片段”

片段无法转换为上下文

Silverlight 中的十进制转换器无法正确处理丢失焦点

从片段中调用父母的活动