Это зависит от того, что это за строка.
- Если это исходная папка, используйте buildhelper-maven-plugin to , добавьте исходную папку в фазе жизненного цикла до
generate-sources
это будет автоматически получено плагином eclipse. - Если это контейнер classpath, вы можете использовать classpathContainers параметр
Если вы хотите изменить выходные папки (с target/classes
и target/test-classes
на что-то другое), измените их в конфигурации сборки maven:
<build>
<!-- replace "target" -->
<directory>somedir</directory>
<!-- replace "target/classes" -->
<outputDirectory>anotherdir</outputDirectory>
<!-- replace "target/test-classes" -->
<testOutputDirectory>yetanotherdir</testOutputDirectory>
</build>
Вы можете настроить каждую из этих трех независимои изменения будут приняты плагином eclipse, но рекомендуется помещать outputDirectory
и testOutputDirectory
внутри directory
(обычно путем ссылки ${project.build.directory}
), в противном случае вы нарушаете стандартную функциональность, например mvn clean
(он очищает ${project.build.directory}
):
<build>
<directory>bin</directory>
<outputDirectory>${project.build.directory}/main-classes
</outputDirectory>
<!-- this config will replace "target" with "bin",
compile src/main/java to "bin/main-classes"
and compile src/test/java to "bin/test-classes"
(because the default config for <testOutputDirectory> is
${project.build.directory}/test-classes )
-->
</build>
Ссылка:
Обновление: в вашем случае, я думаю, единственноеВозможное решение - программно редактировать файл .classpath
.Вероятно, я бы сделал что-то вроде этого:
- Определить
<profile>
именованное затмение (или что-то еще) - Определить выполнение плагина gmaven (используйте эту версию )
- Напишите короткий groovy-скрипт (встроенный в pom или внешний), который проверяет файл .classpath для вашего контейнера classpath и добавляет его в случае отсутствия (связывает выполнение с жизненным цикломфаза, например,
generate-resources
) - установите активацию профиля на
<file><exists>${project.basedir}/.classpath</exists></file>
(поскольку вы хотите, чтобы он был активен только в проекте затмения)
Проблема с этим решением: eclipse:eclipse
- это цель, а не фаза, поэтому выполнить ее автоматически невозможно, поэтому вам придется сделать что-то вроде этого:
mvn eclipse:eclipse # two separate executions
mvn generate-resources # here, profile will be active
или, возможно, так и будеттакже работают:
mvn -Peclipse eclipse:eclipse generate-resources