3

我正在寻找为多模块 maven 项目配置 Netbeans 工作区的方法,以便在按下 CTRL+F5(调试主项目)时始终启动某些模块。在 maven 项目中,此快捷方式始终启动其源文件当前正在打开的项目。这很烦人 - 要启动调试器,我总是必须从“主”模块切换到某个源文件,或者在项目资源管理器(巨大的子树)中找到该模块并右键单击 -> 调试(两者都是经常无用的浪费时间)

类似的问题是关于重新运行最后一个单元测试 - 我找不到捷径,但我看到自 2010 年 8 月以来相关的错误报告没有得到解决:http: //netbeans.org/bugzilla/show_bug.cgi?id= 189113 .

4

1 回答 1

0

您必须在 nbactions.xml 中指定该操作,例如:

<action>
    <actionName>debug</actionName>
    <packagings>
        <packaging>jar</packaging>
    </packagings>
    <goals>  
        <goal>org.codehaus.mojo:exec-maven-plugin:1.2.1:exec</goal>
    </goals>
    <properties>
        <jpda.listen>maven</jpda.listen> 
        <exec.args>-classpath %classpath com.domain.package.Main start</exec.args>
        <exec.executable>java</exec.executable>
        <exec.workingdir>./content</exec.workingdir>
    </properties>
</action> 

所以它会在你的项目的一个模块中执行主文件。

如果要执行依赖项目的 Main java 文件,则必须包含以下插件条目:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId> 
            <executions>  
                <execution>
                    <id>copy-dependencies</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/dependency-jars/</outputDirectory>
                    </configuration>
                </execution>
        </plugin>

这将允许您的 Maven 项目在打包阶段将您需要的所有依赖项复制到目标。然后使用这个其他插件条目来使您需要访问的 Main 类:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>com.domain.package.Main</mainClass>
                        <classpathPrefix>dependency-jars/</classpathPrefix>
                    </manifest>
                </archive>
            </configuration>
        </plugin>

您可以更改依赖 jar 所在的文件夹,甚至可以将其设置为父 maven 项目的 pom.xml 中的属性。

于 2015-04-28T16:25:24.320 回答