Maven и Eclipse: надежный способ добавить не-Maven или внешние банки в проект?

Maven это здорово. Это в основном удерживает меня от ада зависимости jar, определяя версии зависимых пакетов вpom конфигурации, и применяет их автоматически. Он также имеет отличную интеграцию с Eclipse через m2e, так что все работает без проблем в IDE.

Все это отлично подходит для зависимостей, которые известны всему миру Maven. Однако иногда есть библиотеки, которые необходимо включить в проект, который недоступен в репозиториях Maven. В этом случае я обычно добавляю их вlib/ каталог в моем проекте. Пока они находятся в пути к классам, все компилируется.

Однако проблема заключается в том, что они автоматически включаются при импорте проекта. Я слишком долго терпел эту проблему с недоделанными исправлениями и взломами. Каждый раз, когда кто-то устанавливает этот проект, я должен сказать им, чтобы вручную добавить банки вlib/ к их пути сборки Eclipse, так что все ошибки исчезнут. Что-то вроде следующего:

Я ищу способ автоматизировать этот процесс таким образом, чтобы работать как сmvn программа командной строки и Eclipse: больше внимания уделяется Eclipse, потому что хорошо иметь проекты, которые просто компилируются при их импорте.

Я не хочу настраивать сервер репо для этого, и при этом у меня нет собственных фирменных компонентов, которые гарантировали бы настройку чего-либо локально. У меня просто есть несколько jar-файлов, где разработчики не используют Maven; и я хочу скомпилировать их ... я должен просто иметь возможность включать их в дистрибутив моего программного обеспечения, верно?

Я действительно ищу разумный способ реализовать это, который также будет работать в Eclipse без суеты.Это одно решение Я нашел многообещающим, но, похоже, не существует авторитетного решения этой проблемы. Единственное, что приближается, этоMaven-addjars-плагин, который работает хорошо, но только в командной строке. Этот плагин не плохой, и имеет довольно разумную конфигурацию:

<plugin>
    <groupId>com.googlecode.addjars-maven-plugin</groupId>
    <artifactId>addjars-maven-plugin</artifactId>
    <version>1.0.5</version>
    <executions>
        <execution>
            <goals>
                <goal>add-jars</goal>
            </goals>
            <configuration>
                <resources>
                    <resource>
                        <directory>${project.basedir}/lib/java-aws-mturk</directory>
                    </resource>
                    <resource>
                        <directory>${project.basedir}/lib/not-in-maven</directory>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>

Однако попытка запустить его в Eclipse включает добавление следующего беспорядка о сопоставлении жизненного цикла в вашpom.xmlкоторый я никогда не получал на работу; Я даже не думаю, что он настроен на добавление чего-либо к пути сборки Eclipse.

<pluginManagement>
    <plugins>
        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
        <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
                    <pluginExecutions>
                        <pluginExecution>
                            <pluginExecutionFilter>
                                <groupId>
                                    com.googlecode.addjars-maven-plugin
                                </groupId>
                                <artifactId>
                                    addjars-maven-plugin
                                </artifactId>
                                <versionRange>
                                    [1.0.5,)
                                </versionRange>
                                <goals>
                                    <goal>add-jars</goal>
                                </goals>
                            </pluginExecutionFilter>
                            <action>
                                <execute />
                            </action>
                        </pluginExecution>
                    </pluginExecutions>
                </lifecycleMappingMetadata>
            </configuration>
        </plugin>
    </plugins>
</pluginManagement>

Ответы на вопрос(3)

Ваш ответ на вопрос