【问题标题】:maven install to .m2 AND another foldermaven 安装到 .m2 和另一个文件夹
【发布时间】:2015-01-16 18:30:10
【问题描述】:

我有大量的项目要迁移到 maven...但是我有一些限制。

其中之一是将构建的结果留在某个文件夹中。

我正在尝试让 maven 将项目工件安装到本地存储库(.m2 像往常一样,因为它们之间存在依赖关系),并将 jars/wars/ears 文件放入我之前引用的自定义文件夹中.

我已经用过这个了:

<project>
    ...
    <build>
        <directory>${basedir}/../../target/</directory>
        <plugins>
        </plugins>
    </build>
</project>

该项目由几个.ear和.jar组成,我们曾经运行过很多蚂蚁来获取在特定文件夹中生成的那些文件。

我正在尝试将这些文件从 maven 放入该文件夹中,所以我在每个 pom 中都显示了完全相同的代码,但是当我运行 maven 时,除了最后一个之外的所有文件都存放在文件夹中(因为每个pom 清理我想的那个文件夹)

【问题讨论】:

  • 不清楚你想要完成什么; maven 包将组装工件并将其放入目标文件夹, mvn install 会将这个工件复制到 ~/.m2/... 我不知道是否有一个 maven 插件可以将这个工件复制到其他地方开箱即用或你可以很容易地自己写一个。什么被删除了?
  • 你说得对,我要再次编辑问题。无论如何,该项目包含几个.ear和.jar,他们曾经运行许多蚂蚁来获取在某个文件夹中生成的那些文件。我正在尝试将这些文件从 maven 放入该文件夹中,所以我在每个 pom 中显示的代码完全相同,但是当我运行 maven 时,除最后一个之外的所有文件都存放在文件夹中(因为每个 pom 都会清理文件夹我想)

标签: java maven


【解决方案1】:

如果您只想将包复制到其他路径,您可以使用maven-antrun-plugin 来执行此操作。

您可以像这样配置插件:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>config</id>
            <phase>install</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <target>
                    <copy todir="${the.custom.folder}" overwrite="true">
                        <fileset dir="${project.build.directory}" includes="**/*.jar **/*.ear" />
                    </copy>
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>

还可以查看一些工件存储库,例如 ArtifactoryNexus

【讨论】:

  • 我知道 ant 插件,但我想要完成的是从 ant 迁移到 Maven。但是,我开始相信仅 Maven 无法完成我想要做的事情,所以我将检查这个作为正确答案。
  • @chomsky 因为您现在正在迁移,请考虑使用 gradle。它不像 maven 那样“标准化”,然后会给你更多的灵活性。在这里查看一个很好的比较:drdobbs.com/jvm/why-build-your-java-projects-with-gradle/…
  • 这是一家保险公司,所以他们的技术迁移很慢。还是谢谢你的建议,我稍后会检查它
猜你喜欢
  • 2019-09-21
  • 2016-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-10
  • 2011-12-20
  • 1970-01-01
相关资源
最近更新 更多