Netbeans с Maven - Добавление библиотек зависимостей - PullRequest
0 голосов
/ 12 марта 2012

В настоящее время я пытаюсь построить Java-проект с несколькими зависимостями. Я создал его как веб-приложение Maven и добавил все необходимые зависимости. Тем не менее, импорт не решается.

В приведенной ниже ссылке я приложил скриншот моего Netbeans, в котором на правой панели видны ошибки импорта. На левой панели я выделил библиотеки, которые я добавил. Может ли кто-нибудь сказать мне, почему это происходит? Любая помощь будет очень высоко ценится. Спасибо:)

http://img20.imageshack.us/img20/5558/screenshotat20120312121.png

СОДЕРЖАНИЕ ФАЙЛА POM:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany</groupId>
<artifactId>nutchTest2</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>nutchTest2 Java EE 6 Webapp</name>
<url>http://maven.apache.org</url>
<repositories>
    <repository>
        <id>java.net2</id>
        <name>Repository hosting the jee6 artifacts</name>
        <url>http://download.java.net/maven/2</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.6.4</version>
    </dependency>
    <dependency>
        <groupId>org.jvnet.hudson.hadoop</groupId>
        <artifactId>hadoop-core</artifactId>
        <version>0.19.1-hudson-3</version>
    </dependency>
    <dependency>
        <groupId>com.saucelabs.selenium</groupId>
        <artifactId>selenium-htmlunit-driver</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>solrj</groupId>
        <artifactId>solr-solrj-1.3.0.jar</artifactId>
        <version>1.3.0</version>
    </dependency>
    <dependency>
        <groupId>solr</groupId>
        <artifactId>solr-common-1.3.0-sources</artifactId>
        <version>1.3.0</version>
    </dependency>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>6.0</version>
        <scope>provided</scope>
    </dependency>

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.2</version>
        <scope>test</scope>
    </dependency>

</dependencies>
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.0.2</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1-beta-1</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
    <finalName>nutchTest2</finalName>
</build>
<profiles>
    <profile>
        <id>endorsed</id>
        <activation>
            <property>
                <name>sun.boot.class.path</name>
            </property>
        </activation>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>2.0.2</version>
                    <configuration>
                        <!-- javaee6 contains upgrades of APIs contained within the JDK itself.
                             As such these need to be placed on the bootclasspath, rather than classpath of the
                             compiler.
                             If you don't make use of these new updated API, you can delete the profile.
                             On non-SUN jdk, you will need to create a similar profile for your jdk, with the similar property as sun.boot.class.path in Sun's JDK.-->
                        <compilerArguments>
                            <bootclasspath>${settings.localRepository}/javax/javaee-endorsed-api/6.0/javaee-endorsed-api-6.0.jar${path.separator}${sun.boot.class.path}</bootclasspath>
                        </compilerArguments>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>javax</groupId>
                            <artifactId>javaee-endorsed-api</artifactId>
                            <version>6.0</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

</project>

1 Ответ

2 голосов
/ 12 марта 2012

возможно, потому что файлы, которые вы показываете нам, находятся в исходном пакете (solr-common * sources * jar) (обратите внимание, что вы указываете на файлы с расширением .java, а не .class), а не в скомпилированной библиотеке. Включите скомпилированную библиотеку в ваш проект. Нужно посмотреть файл pom, чтобы получить более подробный ответ


После того как я увидел .pom файл: вы должны изменить

<dependency>
    <groupId>solr</groupId>
    <artifactId>solr-common-1.3.0-sources</artifactId>
    <version>1.3.0</version>
</dependency>

до

<dependency>
    <groupId>solr</groupId>
    <artifactId>solr-common</artifactId>
    <version>1.3.0</version>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...