如何在 maven archetype 项目的启动器/运行配置中包含 java“main”类?
运行。启动:
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/${artifactId}/src/main/java/MY/PACKAGE/STRUCTURE/Start.java"/>
结果(原型生成后)应该类似于 /MYPROJECT/src/main/java/MY/PACKAGE/STRUCTURE/Start.java
。所以,主要问题是如何替换动态java包结构,因为每个项目都不一样。
属性 ${package}
解析为“MY.PACKAGE.STRUCTURE”,而不是所需的“MY/PACKAGE/STRUCTURE”。
回答1
为其他用户发布我的解决方案,这可能会遇到同样的问题。
在 my-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
中定义一个新属性:
<requiredProperties>
<requiredProperty key="package-with-slash">
<defaultValue>${package.replace(".", "/")}</defaultValue>
</requiredProperty>
请注意,替换是由 https://velocity.apache.org/engine/2.3/user-guide.html 完成的。
然后,在 run.launch
中引用它:
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/${artifactId}/src/main/java/${package-with-slash}/Start.java"/>