我正在寻找为多模块maven项目配置Netbeans工作区的方法,以便在按CTRL + F5(Debug主项目)时始终启动某个模块。在maven项目中,此快捷方式始终启动其源文件当前正在打开的项目。这很烦人 - 要启动调试器,我总是要从'main'模块切换到某个源文件,或者在项目资源管理器(巨大的子树)中找到该模块,然后右键单击 - >调试(两者都是经常无用的浪费时间)
类似的问题是关于重新运行最后一次单元测试 - 我找不到这个的快捷方式,但是我看到自2010年8月以来没有解决相关的错误报告:http://netbeans.org/bugzilla/show_bug.cgi?id=189113。
答案 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中的属性。