NetBeans - 如何在多模块maven项目中设置默认启动Maven模块?

时间:2012-11-15 10:34:47

标签: maven netbeans-7

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

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

1 个答案:

答案 0 :(得分: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> 

因此它将在您的proyect模块中执行主文件。

如果要执行依赖项目的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>

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