[581691] Allow missing version natures to be ignored

https://bugs.eclipse.org/bugs/show_bug.cgi?id=581691
diff --git a/features/org.eclipse.oomph.all-feature/feature.xml b/features/org.eclipse.oomph.all-feature/feature.xml
index 2dd54a9..1f52dd5 100644
--- a/features/org.eclipse.oomph.all-feature/feature.xml
+++ b/features/org.eclipse.oomph.all-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.oomph.all"
       label="%featureName"
-      version="2.1.0.qualifier"
+      version="2.2.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.oomph.license"
       license-feature-version="0.0.0">
diff --git a/features/org.eclipse.oomph.all-feature/pom.xml b/features/org.eclipse.oomph.all-feature/pom.xml
index b4c9573..af369b5 100644
--- a/features/org.eclipse.oomph.all-feature/pom.xml
+++ b/features/org.eclipse.oomph.all-feature/pom.xml
@@ -22,7 +22,7 @@
 
   <groupId>org.eclipse.oomph.features</groupId>
   <artifactId>org.eclipse.oomph.all</artifactId>
-  <version>2.1.0-SNAPSHOT</version>
+  <version>2.2.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 
 </project>
diff --git a/features/org.eclipse.oomph.version-feature/feature.xml b/features/org.eclipse.oomph.version-feature/feature.xml
index a8380dc..9979157 100644
--- a/features/org.eclipse.oomph.version-feature/feature.xml
+++ b/features/org.eclipse.oomph.version-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.oomph.version"
       label="%featureName"
-      version="1.17.0.qualifier"
+      version="1.18.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.oomph.license"
       license-feature-version="0.0.0">
diff --git a/features/org.eclipse.oomph.version-feature/pom.xml b/features/org.eclipse.oomph.version-feature/pom.xml
index 2cbd989..3033180 100644
--- a/features/org.eclipse.oomph.version-feature/pom.xml
+++ b/features/org.eclipse.oomph.version-feature/pom.xml
@@ -20,6 +20,6 @@
   </parent>
   <groupId>org.eclipse.oomph.features</groupId>
   <artifactId>org.eclipse.oomph.version</artifactId>
-  <version>1.17.0-SNAPSHOT</version>
+  <version>1.18.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/features/org.eclipse.oomph.version.headless-feature/feature.xml b/features/org.eclipse.oomph.version.headless-feature/feature.xml
index 308f813..90e51b2 100644
--- a/features/org.eclipse.oomph.version.headless-feature/feature.xml
+++ b/features/org.eclipse.oomph.version.headless-feature/feature.xml
@@ -12,7 +12,7 @@
 <feature
       id="org.eclipse.oomph.version.headless"
       label="%featureName"
-      version="1.15.0.qualifier"
+      version="1.16.0.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.oomph.license"
       license-feature-version="0.0.0">
diff --git a/features/org.eclipse.oomph.version.headless-feature/pom.xml b/features/org.eclipse.oomph.version.headless-feature/pom.xml
index c16df62..32aaf96 100644
--- a/features/org.eclipse.oomph.version.headless-feature/pom.xml
+++ b/features/org.eclipse.oomph.version.headless-feature/pom.xml
@@ -20,6 +20,6 @@
   </parent>
   <groupId>org.eclipse.oomph.features</groupId>
   <artifactId>org.eclipse.oomph.version.headless</artifactId>
-  <version>1.15.0-SNAPSHOT</version>
+  <version>1.16.0-SNAPSHOT</version>
   <packaging>eclipse-feature</packaging>
 </project>
diff --git a/plugins/org.eclipse.oomph.version.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.oomph.version.ui/META-INF/MANIFEST.MF
index f9eb90e..e8b74f2 100644
--- a/plugins/org.eclipse.oomph.version.ui/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.oomph.version.ui/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.oomph.version.ui;singleton:=true
-Bundle-Version: 1.14.0.qualifier
+Bundle-Version: 1.15.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -15,15 +15,15 @@
  org.eclipse.jface.text;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.ui;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.ui.ide;bundle-version="[3.5.0,4.0.0)",
- org.eclipse.oomph.ui;bundle-version="[1.16.0,2.0.0)",
- org.eclipse.oomph.version;bundle-version="[1.12.0,2.0.0)";visibility:=reexport,
+ org.eclipse.oomph.ui;bundle-version="[1.18.0,2.0.0)",
+ org.eclipse.oomph.version;bundle-version="[1.14.0,2.0.0)";visibility:=reexport,
  org.eclipse.pde.core;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.pde.api.tools;bundle-version="[1.0.0,2.0.0)";resolution:=optional
-Export-Package: org.eclipse.oomph.version.ui;version="1.14.0";x-internal:=true,
- org.eclipse.oomph.version.ui.actions;version="1.14.0";x-internal:=true,
- org.eclipse.oomph.version.ui.dialogs;version="1.14.0";x-internal:=true,
- org.eclipse.oomph.version.ui.preferences;version="1.14.0";x-internal:=true,
- org.eclipse.oomph.version.ui.quickfixes;version="1.14.0";x-friends:="org.eclipse.oomph.version.tests",
- org.eclipse.oomph.version.ui.views;version="1.14.0";x-internal:=true
+Export-Package: org.eclipse.oomph.version.ui;version="1.15.0";x-internal:=true,
+ org.eclipse.oomph.version.ui.actions;version="1.15.0";x-internal:=true,
+ org.eclipse.oomph.version.ui.dialogs;version="1.15.0";x-internal:=true,
+ org.eclipse.oomph.version.ui.preferences;version="1.15.0";x-internal:=true,
+ org.eclipse.oomph.version.ui.quickfixes;version="1.15.0";x-friends:="org.eclipse.oomph.version.tests",
+ org.eclipse.oomph.version.ui.views;version="1.15.0";x-internal:=true
 Eclipse-BuddyPolicy: dependent
 Automatic-Module-Name: org.eclipse.oomph.version.ui
diff --git a/plugins/org.eclipse.oomph.version.ui/pom.xml b/plugins/org.eclipse.oomph.version.ui/pom.xml
index af960a4..1e48d81 100644
--- a/plugins/org.eclipse.oomph.version.ui/pom.xml
+++ b/plugins/org.eclipse.oomph.version.ui/pom.xml
@@ -20,7 +20,7 @@
   </parent>
   <groupId>org.eclipse.oomph</groupId>
   <artifactId>org.eclipse.oomph.version.ui</artifactId>
-  <version>1.14.0-SNAPSHOT</version>
+  <version>1.15.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <build>
diff --git a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/ConfigurationDialog.java b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/ConfigurationDialog.java
index 2397bcb..b009a79 100644
--- a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/ConfigurationDialog.java
+++ b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/ConfigurationDialog.java
@@ -64,6 +64,8 @@
 
   private Button ignoreFeatureContentRedundancyButton;
 
+  private Button ignoreMissingNatureButton;
+
   private Button checkFeatureClosureCompletenessButton;
 
   private Button checkFeatureClosureContentButton;
@@ -174,6 +176,11 @@
     ignoreFeatureContentRedundancyButton.setSelection(values.isIgnoreFeatureContentRedundancy());
     ignoreFeatureContentRedundancyButton.addSelectionListener(buttonListener);
 
+    ignoreMissingNatureButton = new Button(composite, SWT.CHECK);
+    ignoreMissingNatureButton.setText(Messages.ConfigurationDialog_IgnoreMissingNature);
+    ignoreMissingNatureButton.setSelection(values.isIgnoreMissingVersionNature());
+    ignoreMissingNatureButton.addSelectionListener(buttonListener);
+
     checkFeatureClosureCompletenessButton = new Button(composite, SWT.CHECK);
     checkFeatureClosureCompletenessButton.setText(Messages.ConfigurationDialog_checkFeatureClosureCompletenessButton_text);
     checkFeatureClosureCompletenessButton.setSelection(values.isCheckFeatureClosureCompleteness());
@@ -226,6 +233,7 @@
     values.setIgnoreMissingExportVersions(ignoreMissingExportVersionsButton.getSelection());
     values.setIgnoreFeatureContentChanges(ignoreFeatureContentChangesButton.getSelection());
     values.setIgnoreFeatureContentRedundancy(ignoreFeatureContentRedundancyButton.getSelection());
+    values.setIgnoreMissingVersionNature(ignoreMissingNatureButton.getSelection());
     values.setCheckFeatureClosureCompleteness(checkFeatureClosureCompletenessButton.getSelection());
     values.setCheckFeatureClosureContent(checkFeatureClosureContentButton.getSelection());
     values.setCheckMavenPom(checkMavenPomButton.getSelection());
@@ -305,6 +313,12 @@
   }
 
   @Override
+  public boolean isIgnoreMissingVersionNature()
+  {
+    return values.isIgnoreMissingVersionNature();
+  }
+
+  @Override
   public boolean isCheckFeatureClosureCompleteness()
   {
     return values.isCheckFeatureClosureCompleteness();
diff --git a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/ExtendedConfigurationDialog.java b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/ExtendedConfigurationDialog.java
index d5c6cf4..fc82698 100644
--- a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/ExtendedConfigurationDialog.java
+++ b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/ExtendedConfigurationDialog.java
@@ -59,6 +59,7 @@
           Messages.ExtendedConfigurationDialog_column_ignoreMissingPackageExportVersions),
       new ColumnHandler(IVersionBuilderArguments.IGNORE_CONTENT_CHANGES_ARGUMENT, Messages.ExtendedConfigurationDialog_column_ignoreFeatureChanges),
       new ColumnHandler(IVersionBuilderArguments.IGNORE_CONTENT_REDUNDANCY_ARGUMENT, Messages.ExtendedConfigurationDialog_column_ignoreFeatureRedundancy),
+      new ColumnHandler(IVersionBuilderArguments.IGNORE_MISSING_NATURE_ARGUMENT, Messages.ExtendedConfigurationDialog_IgnoreMissingVersionNature),
       new ColumnHandler(IVersionBuilderArguments.CHECK_CLOSURE_COMPLETENESS_ARGUMENT,
           Messages.ExtendedConfigurationDialog_column_checkFeatureClosureCompleteness),
       new ColumnHandler(IVersionBuilderArguments.CHECK_CLOSURE_CONTENT_ARGUMENT, Messages.ExtendedConfigurationDialog_column_checkFeatureClosureContent),
diff --git a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/Messages.java b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/Messages.java
index dce9b57..ee67d8d 100644
--- a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/Messages.java
+++ b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/Messages.java
@@ -49,6 +49,8 @@
 
   public static String ConfigurationDialog_error_cantDoRedundancyAndCompletenessChecksAtSameTime;
 
+  public static String ConfigurationDialog_IgnoreMissingNature;
+
   public static String ExtendedConfigurationDialog_title;
 
   public static String ExtendedConfigurationDialog_message;
@@ -79,6 +81,8 @@
 
   public static String ExtendedConfigurationDialog_column_project;
 
+  public static String ExtendedConfigurationDialog_IgnoreMissingVersionNature;
+
   static
   {
     NLS.initializeMessages(BUNDLE_NAME, Messages.class);
diff --git a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/messages.properties b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/messages.properties
index 179c008..ab41824 100644
--- a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/messages.properties
+++ b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/dialogs/messages.properties
@@ -23,6 +23,7 @@
 ConfigurationDialog_checkFeatureClosureContentButton_text=Check feature closure content
 ConfigurationDialog_checkMavenPomButton_text=Check Maven POM
 ConfigurationDialog_error_cantDoRedundancyAndCompletenessChecksAtSameTime=Redundancy and completeness checks cannot be done at the same time.
+ConfigurationDialog_IgnoreMissingNature=Ignore missing version nature
 
 ExtendedConfigurationDialog_title=Extended Version Builder Configuration
 ExtendedConfigurationDialog_message=Select a release specification file and check additional settings.
@@ -39,3 +40,4 @@
 ExtendedConfigurationDialog_column_checkFeatureClosureContent=Check feature closure content
 ExtendedConfigurationDialog_column_checkMavenPom=Check Maven POM
 ExtendedConfigurationDialog_column_project=Project
+ExtendedConfigurationDialog_IgnoreMissingVersionNature=Ignore missing version nature
diff --git a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/IgnoreMissingVersionNatureResolution.java b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/IgnoreMissingVersionNatureResolution.java
new file mode 100644
index 0000000..a38a3b4
--- /dev/null
+++ b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/IgnoreMissingVersionNatureResolution.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2023 Eclipse contributors and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v20.html
+ */
+package org.eclipse.oomph.version.ui.quickfixes;
+
+import org.eclipse.oomph.internal.version.VersionBuilderArguments;
+import org.eclipse.oomph.internal.version.VersionNature;
+import org.eclipse.oomph.version.Markers;
+import org.eclipse.oomph.version.ui.Activator;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IProject;
+
+/**
+ * @author Ed Merks
+ */
+public class IgnoreMissingVersionNatureResolution extends AbstractResolution
+{
+  public IgnoreMissingVersionNatureResolution(IMarker marker)
+  {
+    super(marker, Messages.IgnoreMissingVersionNatureResolution_IgnoreMissingVersionNature_label, Activator.CORRECTION_CONFIGURE_GIF);
+  }
+
+  @Override
+  protected boolean isApplicable(IMarker marker)
+  {
+    String requiredNature = Markers.getQuickFixNature(marker);
+    return VersionNature.NATURE_ID.equals(requiredNature);
+  }
+
+  @Override
+  public String getDescription()
+  {
+    return Messages.IgnoreMissingVersionNatureResolution_IgnoreMissingVersionNature_description;
+  }
+
+  @Override
+  protected void apply(IMarker marker) throws Exception
+  {
+    IProject project = marker.getResource().getProject();
+    VersionBuilderArguments arguments = new VersionBuilderArguments(project);
+    arguments.setIgnoreMissingVersionNature(true);
+    arguments.applyTo(project);
+  }
+}
diff --git a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/Messages.java b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/Messages.java
index 8876a86..af9ce30 100644
--- a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/Messages.java
+++ b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/Messages.java
@@ -21,6 +21,10 @@
 
   public static String ConfigureResolution_label;
 
+  public static String IgnoreMissingVersionNatureResolution_IgnoreMissingVersionNature_description;
+
+  public static String IgnoreMissingVersionNatureResolution_IgnoreMissingVersionNature_label;
+
   public static String IgnoreRootProjectsResolution_label;
 
   public static String IgnoreRootProjectsResolution_description;
diff --git a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/VersionResolutionGenerator.java b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/VersionResolutionGenerator.java
index a71f9b6..8916a71 100644
--- a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/VersionResolutionGenerator.java
+++ b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/VersionResolutionGenerator.java
@@ -92,6 +92,7 @@
     if (nature != null)
     {
       resolutions.add(new AddNatureResolution(marker, nature));
+      resolutions.add(new IgnoreMissingVersionNatureResolution(marker));
     }
 
     return resolutions.toArray(new IMarkerResolution[resolutions.size()]);
diff --git a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/messages.properties b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/messages.properties
index 59a0645..f2abf5f 100644
--- a/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/messages.properties
+++ b/plugins/org.eclipse.oomph.version.ui/src/org/eclipse/oomph/version/ui/quickfixes/messages.properties
@@ -12,6 +12,8 @@
 
 ConfigureResolution_label=Configure the project to ignore the problem
 
+IgnoreMissingVersionNatureResolution_IgnoreMissingVersionNature_description=Configure the project to ignore references to projects missing the version management nature
+IgnoreMissingVersionNatureResolution_IgnoreMissingVersionNature_label=Ignore missing version nature
 IgnoreRootProjectsResolution_label=Ignore root components for release
 IgnoreRootProjectsResolution_description=Configure ''{0}'' to stop checking that non-root elements are referenced by a root element. To re-enable this checking, use the Preferences dialog to manage the release check mode.
 
diff --git a/plugins/org.eclipse.oomph.version/META-INF/MANIFEST.MF b/plugins/org.eclipse.oomph.version/META-INF/MANIFEST.MF
index d06baa7..19b6073 100644
--- a/plugins/org.eclipse.oomph.version/META-INF/MANIFEST.MF
+++ b/plugins/org.eclipse.oomph.version/META-INF/MANIFEST.MF
@@ -1,7 +1,7 @@
 Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-SymbolicName: org.eclipse.oomph.version;singleton:=true
-Bundle-Version: 1.13.0.qualifier
+Bundle-Version: 1.14.0.qualifier
 Bundle-Name: %pluginName
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
@@ -13,8 +13,8 @@
  org.eclipse.core.resources;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.pde.core;bundle-version="[3.5.0,4.0.0)",
  org.eclipse.oomph.util;bundle-version="[1.20.0,2.0.0)";visibility:=reexport
-Export-Package: org.eclipse.oomph.internal.version;version="1.13.0";x-friends:="org.eclipse.oomph.version.ui",
- org.eclipse.oomph.version;version="1.13.0"
+Export-Package: org.eclipse.oomph.internal.version;version="1.14.0";x-friends:="org.eclipse.oomph.version.ui",
+ org.eclipse.oomph.version;version="1.14.0"
 Eclipse-RegisterBuddy: org.eclipse.oomph.util
 Eclipse-BuddyPolicy: dependent
 Automatic-Module-Name: org.eclipse.oomph.version
diff --git a/plugins/org.eclipse.oomph.version/pom.xml b/plugins/org.eclipse.oomph.version/pom.xml
index 3d4315e..69d9e09 100644
--- a/plugins/org.eclipse.oomph.version/pom.xml
+++ b/plugins/org.eclipse.oomph.version/pom.xml
@@ -20,7 +20,7 @@
   </parent>
   <groupId>org.eclipse.oomph</groupId>
   <artifactId>org.eclipse.oomph.version</artifactId>
-  <version>1.13.0-SNAPSHOT</version>
+  <version>1.14.0-SNAPSHOT</version>
   <packaging>eclipse-plugin</packaging>
 
   <build>
diff --git a/plugins/org.eclipse.oomph.version/src/org/eclipse/oomph/internal/version/IVersionBuilderArguments.java b/plugins/org.eclipse.oomph.version/src/org/eclipse/oomph/internal/version/IVersionBuilderArguments.java
index 9d169c9..faa4c5d 100644
--- a/plugins/org.eclipse.oomph.version/src/org/eclipse/oomph/internal/version/IVersionBuilderArguments.java
+++ b/plugins/org.eclipse.oomph.version/src/org/eclipse/oomph/internal/version/IVersionBuilderArguments.java
@@ -46,6 +46,8 @@
 
   public static final String IGNORE_CONTENT_REDUNDANCY_ARGUMENT = "ignore.feature.content.redundancy"; //$NON-NLS-1$
 
+  public static final String IGNORE_MISSING_NATURE_ARGUMENT = "ignore.missing.nature"; //$NON-NLS-1$
+
   public static final String CHECK_CLOSURE_COMPLETENESS_ARGUMENT = "check.feature.closure.completeness"; //$NON-NLS-1$
 
   public static final String CHECK_CLOSURE_CONTENT_ARGUMENT = "check.feature.closure.content"; //$NON-NLS-1$
@@ -76,6 +78,8 @@
 
   public boolean isIgnoreFeatureContentRedundancy();
 
+  public boolean isIgnoreMissingVersionNature();
+
   public boolean isCheckFeatureClosureCompleteness();
 
   public boolean isCheckFeatureClosureContent();
diff --git a/plugins/org.eclipse.oomph.version/src/org/eclipse/oomph/internal/version/VersionBuilder.java b/plugins/org.eclipse.oomph.version/src/org/eclipse/oomph/internal/version/VersionBuilder.java
index 992e2b8..5c634f9 100644
--- a/plugins/org.eclipse.oomph.version/src/org/eclipse/oomph/internal/version/VersionBuilder.java
+++ b/plugins/org.eclipse.oomph.version/src/org/eclipse/oomph/internal/version/VersionBuilder.java
@@ -544,26 +544,29 @@
         }
 
         Markers.deleteAllMarkers(componentModelFile, Markers.VERSION_NATURE_PROBLEM);
-        for (IElement child : element.getChildren())
+        if (!arguments.isIgnoreMissingVersionNature())
         {
-          IModel childComponentModel = ReleaseManager.INSTANCE.getComponentModel(child);
-          if (childComponentModel != null)
+          for (IElement child : element.getChildren())
           {
-            IResource childComponentModelFile = childComponentModel.getUnderlyingResource();
-            if (childComponentModelFile != null)
+            IModel childComponentModel = ReleaseManager.INSTANCE.getComponentModel(child);
+            if (childComponentModel != null)
             {
-              IProject childProject = childComponentModelFile.getProject();
-              if (!childProject.hasNature(VersionNature.NATURE_ID))
+              IResource childComponentModelFile = childComponentModel.getUnderlyingResource();
+              if (childComponentModelFile != null)
               {
-                Type childType = child.getType();
-                String name = child.getName();
-                String label = childType.toString();
-                String tag = childType.getTag();
-                String msg = NLS.bind(Messages.VersionBuilder_MissingVersionBuilder_message, label, name);
-                IMarker marker = addFeatureChildMarker(componentModelFile, Markers.VERSION_NATURE_PROBLEM, tag, name, msg, child.isLicenseFeature(), false,
-                    null, IMarker.SEVERITY_ERROR);
-                marker.setAttribute(Markers.QUICK_FIX_NATURE, VersionNature.NATURE_ID);
-                marker.setAttribute(Markers.QUICK_FIX_PROJECT, childProject.getName());
+                IProject childProject = childComponentModelFile.getProject();
+                if (!childProject.hasNature(VersionNature.NATURE_ID))
+                {
+                  Type childType = child.getType();
+                  String name = child.getName();
+                  String label = childType.toString();
+                  String tag = childType.getTag();
+                  String msg = NLS.bind(Messages.VersionBuilder_MissingVersionBuilder_message, label, name);
+                  IMarker marker = addFeatureChildMarker(componentModelFile, Markers.VERSION_NATURE_PROBLEM, tag, name, msg, child.isLicenseFeature(), false,
+                      null, IMarker.SEVERITY_ERROR);
+                  marker.setAttribute(Markers.QUICK_FIX_NATURE, VersionNature.NATURE_ID);
+                  marker.setAttribute(Markers.QUICK_FIX_PROJECT, childProject.getName());
+                }
               }
             }
           }
diff --git a/plugins/org.eclipse.oomph.version/src/org/eclipse/oomph/internal/version/VersionBuilderArguments.java b/plugins/org.eclipse.oomph.version/src/org/eclipse/oomph/internal/version/VersionBuilderArguments.java
index 93bb169..20c13b8 100644
--- a/plugins/org.eclipse.oomph.version/src/org/eclipse/oomph/internal/version/VersionBuilderArguments.java
+++ b/plugins/org.eclipse.oomph.version/src/org/eclipse/oomph/internal/version/VersionBuilderArguments.java
@@ -183,6 +183,17 @@
     return "true".equals(get(IVersionBuilderArguments.IGNORE_CONTENT_REDUNDANCY_ARGUMENT)); //$NON-NLS-1$
   }
 
+  public void setIgnoreMissingVersionNature(boolean value)
+  {
+    setBoolean(IVersionBuilderArguments.IGNORE_MISSING_NATURE_ARGUMENT, value);
+  }
+
+  @Override
+  public boolean isIgnoreMissingVersionNature()
+  {
+    return "true".equals(get(IVersionBuilderArguments.IGNORE_MISSING_NATURE_ARGUMENT)); //$NON-NLS-1$
+  }
+
   public void setIgnoreFeatureContentRedundancy(boolean value)
   {
     setBoolean(IVersionBuilderArguments.IGNORE_CONTENT_REDUNDANCY_ARGUMENT, value);