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"/>