Maven 原型的 Eclipse 启动器中的 Main class
Main class in eclipse launcher for maven archetype
如何在 Maven 原型项目的启动器/运行 配置中包含 java“main”class?
run.launch:
<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".
为其他用户发布我的解决方案,这可能会遇到同样的问题。
定义一个新的属性
my-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
:
<requiredProperties>
<requiredProperty key="package-with-slash">
<defaultValue>${package.replace(".", "/")}</defaultValue>
</requiredProperty>
请注意,替换是由 apache velocity engine 完成的。
然后,在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"/>
如何在 Maven 原型项目的启动器/运行 配置中包含 java“main”class?
run.launch:
<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".
为其他用户发布我的解决方案,这可能会遇到同样的问题。
定义一个新的属性
my-archetype/src/main/resources/META-INF/maven/archetype-metadata.xml
:
<requiredProperties>
<requiredProperty key="package-with-slash">
<defaultValue>${package.replace(".", "/")}</defaultValue>
</requiredProperty>
请注意,替换是由 apache velocity engine 完成的。
然后,在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"/>