Подтвердить что ты не робот

Проблема с артефактом Maven 3

Я сделал новый проект struts в eclipse, используя stuts2-archtype-starter.

Несколько ошибок, когда в моем проекте уже было что-то делать. Решил большинство из них, но есть еще один вопрос, который все еще дает мне некоторые проблемы.

Missing artifact com.sun:tools:jar:1.5.0:system pom.xml

Я попытался вручную добавить tools.jar в свой репозиторий, но это не решило проблему.

Мой pom выглядит следующим образом

<?xml version="1.0" encoding="UTF-8" ?>

<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.divespot</groupId>
    <artifactId>website</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>E-Divespot diving community</name>
    <url>http://www.e-divespot.com</url>
    <description>A website to support divers from all around the world.</description>

    <dependencies>
        <!-- Junit -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.2</version>
            <scope>test</scope>
        </dependency>

        <!--  Struts 2 -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.0.11.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-sitemesh-plugin</artifactId>
            <version>2.0.11.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-spring-plugin</artifactId>
            <version>2.0.11.2</version>
        </dependency>

        <!-- Servlet & Jsp -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.4</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>

        <!-- Jakarta Commons -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.1.1</version>
        </dependency>

        <!-- Dwr -->
        <dependency>
            <groupId>uk.ltd.getahead</groupId>
            <artifactId>dwr</artifactId>
            <version>1.1-beta-3</version>
        </dependency>
    </dependencies>

    <build>
      <finalName>website</finalName>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                   <source>1.6</source>
                   <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>6.1.5</version>
                <configuration>
                    <scanIntervalSeconds>10</scanIntervalSeconds>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
4b9b3361

Ответ 1

Ошибка, которую вы видите, вероятно, потому, что у вас нет правильного пути JAVA_HOME. Вы видите что-то вроде C:\{directories to jre}\..\lib\tools.jar?

Вы можете запустить затмение с помощью встроенного JDK, изменив eclipse.ini и добавив что-то вроде

-vm
C:\{directories to JDK}\bin\javaw.exe

Что я узнал, так это то, что eclipse по умолчанию будет использовать вашу систему jre для запуска eclipse. Вероятно, вы видели сообщение при запуске eclipse, аналогичном "Eclipse работает под JRE, а для m2eclipse требуется JDK, некоторые плагины не будут работать"

Если вы заходите в (затмение) Help → Installation Details и ищете -vm, вы, вероятно, увидите, что это указывает на то, где не существует структуры пути, которую она ожидает.

Примечание. По какой-либо причине, когда я столкнулся с этой проблемой, java.home в maven был оценен с момента запуска eclipse. Поэтому, когда он пытается вытащить tools.jar из того, что он видит как java.home, это может быть не то, что вы на самом деле устанавливаете как JAVA_HOME как переменную env/system.

Ответ 2

<dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>${struts2.version}</version>
    <exclusions>
        <exclusion>
            <artifactId>tools</artifactId>
            <groupId>com.sun</groupId>
        </exclusion>
    </exclusions>
</dependency>

Ответ 3

Вы не можете использовать tools.jar из репозитория.

К сожалению, что-то в вашем дереве зависимостей думает, что вы можете. Таким образом, вы должны использовать "исключает", чтобы избавиться от существующей зависимости, а затем замените ее следующим.

Если вы укажете версию в приведенном ниже совпадении, что в сообщении об ошибке вам может не понадобиться "исключить".

Вам нужно:

  <profiles>
    <profile>
      <id>default-tools.jar</id>
      <activation>
        <property>
          <name>java.vendor</name>
          <value>Sun Microsystems Inc.</value>
        </property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>com.sun</groupId>
          <artifactId>tools</artifactId>
          <version>whatever</version>
          <scope>system</scope>
          <systemPath>${java.home}/../lib/tools.jar</systemPath>
        </dependency>
      </dependencies>
    </profile>

Ответ 4

Нужно добавить еще один ответ. После обновления m2e до 1.4.20130601-0317 ошибка вернулась. Опять же, ни один из предлагаемых решений не работал, в том числе тот, который я только что предложил. В конце концов, я обнаружил, что виновник: в том числе org.htmlparser:1.6 имел неявную зависимость от tools.jar. Не знаю, почему удаление установленного jre помогло с более старым m2e (1.0.something). Теперь решение состоит в исключении tools.jar:

    <dependency>
        <groupId>org.htmlparser</groupId>
        <artifactId>htmlparser</artifactId>
        <version>1.6</version>
        <exclusions>
            <exclusion>
                <artifactId>tools</artifactId>
                <groupId>com.sun</groupId>
            </exclusion>
        </exclusions>
    </dependency>

Ответ 5

Недавно у меня была такая же проблема, но ни один из вышеперечисленных решений не работал у меня. Я встретил http://blog.samratdhillon.com/archives/598 и решил, что это ошибка Eclipse упоминается там.

Мне пришлось удалить все установленные jre из конфигурации Eclipse (Window -> Preferences -> Java -> Installed JREs) и сохранить только один jdk. После этого maven работал отлично, без каких-либо изменений до eclipse.ini или чего-либо еще. Это с Ecplise Indigo Service Release 1.

Ответ 6

Пример eclipse.ini:

-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
C:\Java\JDK\1.6\bin\javaw.exe
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx1024m

-vm значение: Linux Пример:

-vm
/opt/sun-jdk-1.6.0.02/bin/java

Из введите описание ссылки здесь

Ответ 7

Смутно свойство ${java.home} фактически разрешит его значение из переменной среды JRE_HOME.

http://docs.codehaus.org/display/MAVENUSER/MavenPropertiesGuide (поиск java.home)

Если вы не хотите изменять JAVA_HOME в jre root, тогда создайте вместо этого переменную JRE_HOME.

Ответ 8

Основная проблема заключается в том, что mavan не может обработать tool.jar. поэтому эта проблема возникает  u просто добавьте файл tool.jar в ваш проект. Tool.jar присутствует в вашем программном обеспечении java C:\Program Files\Java\jdk1.6.0_14\lib
попробуйте этот код, я надеюсь, что вы успешно  http://maven.apache.org/xsd/maven-4.0.0.xsd" >   4.0.0   Strust2Testing   Strust2Testing   0.0.1-SNAPSHOT   война                     org.apache.struts

        <artifactId>Struts2-core </artifactId>
        <version>2.3.15.1</version>
        <exclusions>
    <exclusion>
        <artifactId>tools</artifactId>
        <groupId>com.sun</groupId>
    </exclusion>
</exclusions>
    </dependency>
</dependencies>
<build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <warSourceDirectory>WebContent</warSourceDirectory>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

Ответ 9

sudo apt-get install openjdk-7-source