我正在尝试创建一个原型来生成一个Maven项目,该项目具有一些将在文件中使用的属性以及文件名和目录结构。
我遇到的问题是如何控制包目录结构?无论到目前为止我尝试过什么,我指定的groupId
(在archetype:generate
中是必选参数)都将其自身强制为软件包目录结构。如果我尝试在archetype-resources
目录设置中或在Java文件本身的程序包名称中使用其他内容,那么我将得到在那里指定的内容,以及groupId
。
有效地,我希望我的项目结构与groupId
不同,但是生成的原型似乎迫使groupId
进入包结构。
有办法阻止这种情况吗?
如果我使用以下命令:
archetype:generate -DarchetypeGroupId=archetype.test -DarchetypeArtifactId=archetype-test -DarchetypeVersion=1.0-SNAPSHOT -DgroupId=com.example.test.project-DartifactId=my.test.project.artifact -Dversion=1.0.0-SNAPSHOT
使用以下fileset
:
<fileSet filtered="true" packaged="true">
<directory>src/main/java</directory>
<includes>
<include>**/MyClass.java</include>
</includes>
</fileSet>
最终我的Java文件位于:
src/main/java/com/example/test/project/MyClass.java.
我仍然希望使用相同的groupId
,但是我希望我的课程位于单独的目录中,例如:
src/main/java/com/different/project/MyClass.java
答案 0 :(得分:1)
请参见Create a Project from an Archetype – Batch mode:
可以调用Archetype插件以批处理方式生成项目(摆脱提示)。这是通过为原型插件提供所有需要的值作为系统属性来实现的。
...
package
指定用于生成项目的源的程序包...
长话短说,将以下内容添加到您的命令行中:
-Dpackage=com.different.project