<!-- <questionid="arch-overall"when="init"> Describetheoverallarchitecture. <hint> WhatwillbeAPIfor <ahref="http://openide.netbeans.org/tutorial/api-design.html#design.apiandspi"> clientsandwhatsupportAPI</a>? Whatpartswillbepluggable? Howwillplug-insberegistered?Pleaseuse<code><apitype="export"/></code> todescribeyourgeneralAPIs. Ifpossiblepleaseprovide simplediagrams. </hint> </question>
-->
<answer id="arch-overall">
<ul>
<li>
<api group="java" name="MavenProjectAPI"type="export" category="friend">
<p>
The Maven Project API provides some miscellaneous friend APIs and SPIs relating to
Maven projects.
</p>
</api>
</li>
</ul>
</answer>
<!-- <questionid="arch-usecases"when="init"> Describethemain<ahref="http://openide.netbeans.org/tutorial/api-design.html#usecase"> usecases</a>ofthenewAPI.Whowilluseitat whatcircumstancesandwhatwillbethetypicalcodetowrite tousethemodule. </question>
-->
<answer id="arch-usecases">
<p>
API/SPI to be used by modules wanting to enhance the maven project's integration in the IDE.
</p>
</answer>
<!-- <questionid="resources-read"when="final"> Doesyourmodulereadanyresourcesfromlayers?Forwhatpurpose? <hint> Asthisissomekindofintermoduledependency,itisakindofAPI. Pleasedescribeitandclassifyaccordingto <ahref="http://openide.netbeans.org/tutorial/api-design.html#categories"> commonstabilitycategories</a>. </hint> </question>
-->
<answer id="resources-read">
<api group="layer" name="MavenProjectCustomizer"type="export" category="official">
<p> "Projects/org-netbeans-modules-maven/Customizer" folder's content is used to construct the project's customizer.
It's content is expected to be <code>ProjectCustomizer.CompositeCategoryProvider</code> instances.
The lookup passed to the panels contains an instance of <code>Project</code> and <code>org.netbeans.modules.maven.api.customizer.ModelHandle</code>
Please note that the latter is not part of any public APIs and you need friend dependency to make use of it.
</p>
</api>
<api group="layer" name="MavenLogicalViewProvider"type="export" category="official">
<p> "Projects/org-netbeans-modules-maven/Nodes" folder's content is used to construct the project's child nodes.
It's content is expected to be <code>NodeFactory</code> instances.
</p>
</api>
<api group="layer" name="MavenLookup"type="export" category="official">
<p> "Projects/org-netbeans-modules-maven/Lookup" folder's content is used to construct the project's additional lookup.
It's content is expected to be <code>LookupProvider</code> instances. Maven project provides <code>LookupMerger</code>s
for <code>Sources</code>, <code>PrivilegedTemplates</code>, <code>RecommendedTemplates</code> and other classes. Implementations added by 3rd parties
will be merged into a single instance in the project's lookup.
</p>
</api>
<api group="layer" name="MavenPackagingLookup"type="export" category="devel">
<p>
<code>Projects/org-netbeans-modules-maven/<packaging-type>/Lookup</code> is added to the project's additional Lookup. The content is expected
to contain packaing-specific services and processors, for example, <a href="@TOP@/org/netbeans/modules/maven/api/execute/PrerequisitesChecker.html">PrerequisitesCheckers</a>.
In addition, <code>Projects/org-netbeans-modules-maven/_any/Lookup</code> defines services that act after the packaging-specific ones.
</p>
For the details and examples, see description in <a href="@TOP@/org/netbeans/modules/maven/api/execute/PrerequisitesChecker.html">PrerequisitesChecker javadoc</a>.
</api>
<api group="layer" name="PluginLookup"type="export" category="official">
<p>
Technology-related services can be registered so they activate in a project that has configured a specific Maven plugin. Such services should
be placed in <code>Projects/org-netbeans-modules-maven/<plugin-id>/Lookup</code> folder. Maven core module will plug these providers in
as soon as the plugin-id appears in the POM model, and will remove them from project's Lookup when the plugin is no longer part of the project's model.
See <a href="@TOP@/org/netbeans/modules/maven/api/NbMavenProject.html">NbMavenProject javadoc for details/examples</a>.
</p>
</api>
<api group="layer" name="MavenActions"type="export" category="official">
<p> "Projects/org-netbeans-modules-maven/ProjectActions", "Projects/org-netbeans-modules-maven/DependenciesActions" and "Projects/org-netbeans-modules-maven/DependencyActions" folders' content is used to
add item's to node popup. To main project node, Dependencies node and node for single dependency.
It's content is expected to be <code>Action</code> instances.
</p>
</api>
<api group="layer" name="LifecycleParticipants"type="export" category="official">
<p>
A module can disable warning for a custom lifecycle participant by creating a <b>folder</b> in
<code>Projects/org-netbeans-modules-maven/LifecycleParticipant</code>. Currently single boolean attribute,
<code>ignoreOnModelLoad</code> is supported, which suppresses project problem and warning about
the custom participant. The participant's code does not run after project load.
</p>
</api>
<api group="layer" name="MavenArchetypes"type="export" category="official">
<p> "Projects/org-netbeans-modules-maven/Archetypes" folder contains fileobjects
that represent archetypes. The archetypes are defined by the following file attributes:
</p>
<table>
<caption>Archetype attributes</caption>
<tbody>
<tr><td>groupId</td><td>mandatory</td><td></td></tr>
<tr><td>artifactId</td><td>mandatory</td><td></td></tr>
<tr><td>version</td><td>mandatory</td><td></td></tr>
<tr><td>repository</td><td>optional</td><td>url of the archetype's repository</td></tr>
<tr><td>nameBundleKey</td><td>optional</td><td>key in bundle file that holds localized name</td></tr>
<tr><td>descriptionBundleKey</td><td>optional</td><td>key in bundle file that holds localized description</td></tr>
</tbody>
</table>
</api>
<api group="lookup" name="ActionConfiguration"type="import" category="official">
<p>
Project API clients may place <a href="@org-netbeans-modules-projectapi@/org/netbeans/spi/project/ProjectConfiguration.html">ProjectConfiguration</a>
instance in the <b>context Lookup</b> passed to <a href="@org-netbeans-modules-projectapi@/org/netbeans/spi/project/ActionProvider.html#isActionEnabled(java.lang.String,org.openide.util.Lookup)">ActionProvider.isActionEnabled()</a> or
<a href="@org-netbeans-modules-projectapi@/org/netbeans/spi/project/ActionProvider.html#invokeAction(java.lang.String,org.openide.util.Lookup)">ActionProvider.invokeAction()</a>. If such instance is present, the action is configured according to settings in the selected configuration.
If not present, the active configuration is used. See example in <a href="@TOP@/org/netbeans/modules/maven/api/NbMavenProject.html">NbMavenProject</a> documentation.
</p>
</api>
</answer>
<answer id="exec-property">
<p>
<api category="devel" group="property" name="netbeans.ignore.jdk.bootclasspath"type="export">
The maven support recognizes special tag in <q>maven-compiler-plugin</q> configuration
that instructs the IDE to <em>not</em> put JDK libraries on a classpath. One can use:<pre>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArguments>
<bootclasspath>netbeans.ignore.jdk.bootclasspath</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
</pre>
section in <code>pom.xml</code> to <em>suppress</em> the JDK libraries.
</api>
</p>
<p>
<api category="devel" group="systemproperty" name="org.netbeans.modules.maven.execute.AbstractOutputHandler.SLEEP_DELAY"type="export">
A system property can be used to change the default indexing sleep delay during builds,
in case reparsing starts too soon (wasting CPU) or too late (impeding editing).
</api>
</p>
<p>
<api category="devel" group="branding" name="org.netbeans.modules.maven.options.DEFAULT_REUSE_OUTPUT"type="export">
Brand the <code>DEFAULT_REUSE_OUTPUT</code> key in a
<code>org.netbeans.modules.maven.options.Bundle</code> file
with one of the values <code>true</code> or <code>false</code>
to specify the default behavior of reusing output by your application.
Use <code>never</code> value, if the reuse shall never be done,
regardless of the settings value.
</api>
<api category="devel" group="branding" name="org.netbeans.modules.maven.api.execute.DEFAULT_COMPILE_ON_SAVE"type="export">
Brand the <code>DEFAULT_COMPILE_ON_SAVE</code> key in a
<code>org.netbeans.modules.maven.api.execute.Bundle</code> file
with one of the values <code>all</code> or <code>none</code>
to specify the default behavior of compile on save in Maven
projects.
</api>
<api category="stable" group="property" name="exec.vmArgs"type="export">
The plugin exports Java VM parameters to be used for application execution in <code>${exec.vmArgs}</code>
property that can be used in action mappings or Maven pom.xml.
</api>
<api category="stable" group="property" name="exec.appArgs"type="export">
The plugin exports application parameters to be used for application execution in <code>${exec.appArgs}</code>
property that can be used in action mappings or Maven pom.xml.
</api>
<api category="private" group="property" name="NbIde."type="export">
Properties designed to be read only by NB IDE code, and <b>not passed</b> to Maven can be prefixed by this prefix.
Maven module uses such properties to communicate between services that participate on maven launch internally.
</api>
<api category="devel" group="lookup" name="ExplicitProcessParameters"type="export">
Project actions that execute user application (run, debug) accept additional VM and application
arguments as a series of <a href="@org-netbeans-modules-extexecution-base@/org/netbeans/api/extexecution/base/ExplicitProcessParameters.html">
ExplicitProcessParameters</a> instance(s) in the action's Lookup. See <a href="@org-netbeans-modules-extexecution-base@/org/netbeans/api/extexecution/base/ExplicitProcessParameters.html">
ExplicitProcessParameters</a> javadoc for more details.
</api>
<api category="devel" group="branding" name="org.netbeans.modules.maven.indexer.api.DEFAULT_CREATE_INDEX"type="export">
Brand the <code>DEFAULT_CREATE_INDEX</code> key in
<code>org.netbeans.modules.maven.indexer.api.Bundle</code> file
with one of the values <code>true</code> or <code>false</code>
to control (usually to disable with <code>DEFAULT_CREATE_INDEX=false</code>)
the default behavior automatic maven index downloading.
</api>
<api category="devel" group="branding" name="org.netbeans.modules.maven.indexer.api.DEFAULT_UPDATE_FREQ"type="export">
Brand the <code>DEFAULT_UPDATE_FREQ</code> key in
<code>org.netbeans.modules.maven.indexer.api.Bundle</code> file
with one of the values:
<ul>
<li><code>0</code> - once a week</li>
<li><code>1</code> - once a day</li>
<li><code>2</code> - on each startup</li>
<li><code>3</code> - never</li>
</ul>
to control (usually to disable with <code>DEFAULT_UPDATE_FREQ=3</code>)
the default behavior automatic maven index downloading.
</api>
<api category="devel" group="layer" name="Project.org-netbeans-modules-maven.RunGoals"type="export">
A executable-like plugin goals, that may serve in place of exec:exec may be registered here. The core implementation
will recognize such goals as exec's and will not disable app amd VM parameter configuration UI.
For an example, see <a href="@TOP@/org/netbeans/modules/maven/spi/actions/MavenActionsProvider.html#declare-run-goals">MavenActionProvider</a>.
</api>
</p>
</answer>
<answer id="resources-file">
<p>
<api category="stable" group="java.io.File" name="nbactions.xml"type="export">
<p>
NetBeans Maven support recognizes special file(s) that can be placed
next to a <code>pom.xml</code>. These files contain description of
bindings between NetBeans UI actions (compile, run, debug, etc.) and
the actual Maven goals to execute.
</p>
<p>
Primary name of the file is <code>nbactions.xml</code>. In
addition to this, there can be other <code>nbactions-profile.xml</code>
where profile is the name of a Maven profile. These files are
active when such profile is choosen as a selected
project configuration. The sample format of the file follows:
</p>
<pre>
<?xmlversion="1.0"encoding="UTF-8"?>
<actions>
<action>
<actionName>run</actionName>
<goals>
<goal>process-classes</goal>
<goal>exec:java</goal>
</goals>
</action>
<action>
<actionName>debug</actionName>
<goals>
<goal>process-classes</goal>
<goal>exec:java</goal>
</goals>
<properties>
<jpda.listen>maven</jpda.listen>
</properties>
</action>
<action>
<!-- this action is shown in 'Custom' submenu of project popup menu -->
<actionName>CUSTOM-bck2brwsr-show</actionName>
<displayName>Run in a Browser</displayName>
<goals>
<goal>clean</goal>
<goal>package</goal>
<goal>bck2brwsr:show</goal>
</goals>
<activatedProfiles>
<activatedProfile>bck2brwsr</activatedProfile>
</activatedProfiles>
<properties>
<skipTests>true</skipTests>
</properties>
</action>
<!-- the profiles section is only useful in nbactions.xml
and gets activated when profile of given id is choosen in the UI
-->
<profiles>
<profile>
<id>bck2brwsr</id>
<!-- changes meaning of run action when bck2brwsr profile
is selected
-->
<actions>
<action>
<actionName>run</actionName>
<displayName>Run in a Browser</displayName>
<goals>
<goal>clean</goal>
<goal>package</goal>
<goal>bck2brwsr:show</goal>
</goals>
<activatedProfiles>
<activatedProfile>bck2brwsr</activatedProfile>
</activatedProfiles>
<properties>
<skipTests>true</skipTests>
</properties>
</action>
</actions>
</profile>
</profiles>
</actions>
</pre>
<p>
If an action is not found in currently selected <profile>
section, the system fallbacks to the main list of actions. In
the previous example, the debug action would be taken from main
list for all the profiles.
</p>
</api>
<api category="stable" group="property" name="jpda.attach"type="export">
<p>
One can define following code in nbactions.xml file to start
a process during goal execution and attach a debugger to it
once the execution is over. Here is an example using
<a onclick="target='_blank'"href="https://github.com/simpligility/android-maven-plugin/pull/584">enhancement</a>
in the Maven Android plugin:
</p>
<pre>
<action>
<actionName>debug</actionName>
<goals>
<goal>clean</goal>
<goal>package</goal>
<goal>android:deploy</goal>
<goal>android:run</goal>
</goals>
<properties>
<skipTests>true</skipTests>
<android.run.debug>${jpda.attach.port}</android.run.debug>
<jpda.attach>true</jpda.attach>
</properties>
</action>
</pre>
<p>
Value of <code>jpda.attach</code> property can either be <code>true</code>
and in such case the IDE finds an empty port and sets values of
<code>jpda.attach.port</code> and <code>jpda.attach.address</code>
properties accordingly, or it can be directly specified
<code>address:port</code> or just port number to connect to.
</p>
</api>
<api category="stable" group="property" name="jpda.attach.trigger"type="export">
<p>
One can define following code in nbactions.xml file to start
a process during goal execution and attach a debugger to it
when the external process prints a text indicating it's ready for attaching debugger.
One example is debugging applications using <a href="https://software.intel.com/en-us/multi-os-engine">Multi-OS Engine</a>:
</p>
<pre>
<action>
<actionName>debug</actionName>
<goals>
<goal>package</goal>
<goal>moe:launch</goal>
</goals>
<properties>
<skipTests>true</skipTests>
<moe.options>debug:${jpda.attach.port}</moe.options>
<jpda.attach>true</jpda.attach>
<jpda.attach.trigger>JDWP will wait for debugger on port</jpda.attach.trigger>
</properties>
<activatedProfiles>
<activatedProfile>moe</activatedProfile>
</activatedProfiles>
</action>
</pre>
<p>
Value of <code>jpda.attach.trigger</code> property is the expected text.
</p>
</api>
</p>
</answer>
</api-answers>
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet am 2026-09-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.