Рабочая настройка
У меня есть такая структура проекта:
root\
+ pom.xml
+- SomeSubprojectWithResource\
| +- src/main/resources/theResource
| \- pom.xml
+- SomeSubprojectAccessingTheResourceDuringBuild\
| \- pom.xml
\- SomeSubprojectHavingOwnMavenModules\
+- pom.xml
+- SubSubProject1
+- SubSubProject2
До сих пор это был один репозиторий git. Все модули первого уровня имеют корневой POM как родительский . В SomeSubprojectAccessingTheResourceDuringBuild
я настроил доступ к ресурсу через properties-maven-plugin
с относительным путем в главном POM:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<execution>
<phase>initialize</phase>
<configuration>
<files>
<file>${parentBase}/SomeSubprojectWithResource/src/main/resources/theResource</file>
</files>
</configuration>
<goals>
<goal>read-project-properties</goal>
</goals>
</execution>
</executions>
</plugin>
И свойство ${parentBase}
установлено в SomeSubprojectAccessingTheResourceDuringBuild
на ../
.
Изменения, которые я сделал
Но я хочу, чтобы Модули основного Проекта получили свои отдельные репозитории git и независимое управление выпусками.
Я извлек SomeSubprojectHavingOwnMavenModules
в отдельный gitхранилище и удалил его родительскую конфигурацию.
Не из модулей этого отдельного проекта относится к properties-maven-plugin
.
Проблема
Когда я запускаюсборка для отдельного проекта (в новом месте) properties-maven-plugin
выполняется. Я получаю ошибку, что к ресурсу нельзя получить доступ по относительному пути к новому местоположению.
[DEBUG] Goal: org.codehaus.mojo:properties-maven-plugin:1.0-alpha-2:read-project-properties (default)
[DEBUG] Style: Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
<files>
<file>../SomeSubprojectWithResource/src/main/resources/theResource</file>
</files>
<project default-value="${project}"/>
<quiet default-value="false"/>
</configuration>
...
[INFO] --- properties-maven-plugin:1.0-alpha-2:read-project-properties (default) @ SomeSubprojectHavingOwnMavenModules ---
[DEBUG] Dependency collection stats: {ConflictMarker.analyzeTime=141900, ConflictMarker.markTime=104600, ConflictMarker.nodeCount=31, ConflictIdSorter.graphTime=44200, ConflictIdSorter.topsortTime=17200, ConflictIdSorter.conflictIdCount=14, ConflictIdSorter.conflictIdCycleCount=0, ConflictResolver.totalTime=547300, ConflictResolver.conflictItemCount=31, DefaultDependencyCollector.collectTime=35727900, DefaultDependencyCollector.transformTime=874500}
[DEBUG] org.codehaus.mojo:properties-maven-plugin:jar:1.0-alpha-2:
[DEBUG] org.apache.maven:maven-model:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-plugin-api:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-project:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-settings:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-profile:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-artifact-manager:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-repository-metadata:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-plugin-registry:jar:2.0.6:compile
[DEBUG] org.apache.maven:maven-artifact:jar:2.0.6:compile
[DEBUG] org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile
[DEBUG] junit:junit:jar:3.8.2:test
[DEBUG] classworlds:classworlds:jar:1.1-alpha-2:compile
[DEBUG] org.codehaus.plexus:plexus-utils:jar:1.5.6:compile
[DEBUG] Created new class realm plugin>org.codehaus.mojo:properties-maven-plugin:1.0-alpha-2
[DEBUG] Importing foreign packages into class realm plugin>org.codehaus.mojo:properties-maven-plugin:1.0-alpha-2
[DEBUG] Imported: < maven.api
[DEBUG] Populating class realm plugin>org.codehaus.mojo:properties-maven-plugin:1.0-alpha-2
[DEBUG] Included: org.codehaus.mojo:properties-maven-plugin:jar:1.0-alpha-2
[DEBUG] Included: org.codehaus.plexus:plexus-utils:jar:1.5.6
[DEBUG] Configuring mojo org.codehaus.mojo:properties-maven-plugin:1.0-alpha-2:read-project-properties from plugin realm ClassRealm[plugin>org.codehaus.mojo:properties-maven-plugin:1.0-alpha-2, parent: sun.misc.Launcher$AppClassLoader@33909752]
[DEBUG] Configuring mojo 'org.codehaus.mojo:properties-maven-plugin:1.0-alpha-2:read-project-properties' with basic configurator -->
[DEBUG] (f) files = [/absolute/Path/To/SomeSubprojectHavingOwnMavenModules/SomeSubprojectWithResource/src/main/resources/theResource]
[DEBUG] (f) project = MavenProject: de.contiteves.pacs.ccg:SomeSubprojectHavingOwnMavenModules:3-SNAPSHOT @ /absolute/Path/To/SomeSubprojectHavingOwnMavenModules/pom.xml
[DEBUG] (f) quiet = false
[DEBUG] -- end configuration --
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for SomeSubprojectHavingOwnMavenModules 3-SNAPSHOT:
[INFO]
[INFO] SomeSubprojectHavingOwnMavenModules ................ FAILURE [ 0.853 s]
[INFO] SubSubProject1 ..................................... SKIPPED
[INFO] SubSubProject2 ..................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.196 s
[INFO] Finished at: 2019-10-11T09:32:02+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:properties-maven-plugin:1.0-alpha-2:read-project-properties (default) on project SomeSubprojectHavingOwnMavenModules: Properties file not found: /absolute/Path/To/SomeSubprojectHavingOwnMavenModules/SomeSubprojectWithResource/src/main/resources/theResource -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:properties-maven-plugin:1.0-alpha-2:read-project-properties (default) on project PACS-CCG: Properties file not found: /absolute/Path/To/SomeSubprojectHavingOwnMavenModules/SomeSubprojectWithResource/src/main/resources/theResource
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
Вопросы
Разделенный проект не нуждается в информации, представленной в файле ресурсов, и properties-maven-plugin
не должен выполняться в первую очередь.
Как узнать, почему properties-maven-plugin
выполняется с этой конфигурацией?
Как предотвратить выполнение properties-maven-plugin
(с этой конфигурацией)?