我需要使用pom.xml
文件运行Maven,该文件位于与项目其余部分不同的目录中。
例如:
. maven-f-sample git:(main) ✗ tree .
├── etc
│ └── pom.xml
└── src
└── main
├── java
│ └── org
│ └── example
│ └── Main.java
└── resources
当我使用mvn compile -f etc/pom.xml
从项目的根目录运行mvn
时,它预期etc/src
中的src
目录。
我知道可以使用以下命令修改pom.xml
中的源目录和目标目录:
<build>
<sourceDirectory>../src</sourceDirectory>
<directory>../target</directory>
</build>
但是由于其他插件可能依赖于src
以外的其他目录,我认为这不是一个可靠的解决方案。
是否有技巧让Maven使用位于执行命令的同一目录中的源代码,或者使用另一个选项设置项目目录,而不修改pom.xml
?
- 如果你想知道"为什么"*
我意识到这不是使用Maven的典型方式-我需要它专门用于Just,在运行时生成自定义pom.xml
。现在它在项目目录中创建为pom.xml.tmp
,但理想情况下它将在/tmp
中创建。
2条答案
按热度按时间vfh0ocws1#
实际上,我只想改变源目录和目标目录(通过使用命令行参数)。我不知道有什么插件可以解决这个问题。
当然,您需要对此进行大量测试,因为您可能会打破假设。
pbgvytdp2#
虽然它不符合the standard directory layout,但您可以尝试像这样调用maven:
然而,这是未经测试的,正如Karl海因茨在评论中指出的,这是一个内部API。请不要使用它,尤其不要期望支持这种配置。
也就是说:如果它不起作用,请尝试遵守目录布局,而不是不惜任何代价。
另请注意,某些插件在此配置下仍然无法工作:他们可以添加具有不同逻辑的其他目录。
也就是说,解决办法(可悲的是)只有:请修复你的项目。2也许你可以把文件链接到基目录?