2016-11-30 2 views
0

Я пытаюсь настроить проект Struts2 с помощью maven und IntelliJ в качестве IDE.Maven не может найти зависимости Struts2

Но maven не может найти большую часть зависимостей. Например:

org.apache.struts:struts2-core:2.5.5 

https://mvnrepository.com/artifact/org.apache.struts/struts2-core/2.5.5

pom.xml

<?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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId></groupId> 
    <artifactId>brw</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>war</packaging> 
    <name>brw</name> 

    <properties> 
     <struts2.version>2.5.5</struts2.version> 
     <log4j2.version>${log4j2.version}</log4j2.version> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 

     <dependency> 
      <groupId>org.apache.struts</groupId> 
      <artifactId>struts2-core</artifactId> 
      <version>${struts2.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.struts</groupId> 
      <artifactId>struts2-config-browser-plugin</artifactId> 
      <version>${struts2.version}</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.struts</groupId> 
      <artifactId>struts2-junit-plugin</artifactId> 
      <version>${struts2.version}</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-core</artifactId> 
      <version>${log4j2.version}</version> 
     </dependency> 

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

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.1.0</version> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>2.0</version> 
      <scope>provided</scope> 
     </dependency> 

    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.3</version> 
       <configuration> 
        <encoding>UTF-8</encoding> 
        <source>1.5</source> 
        <target>1.5</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.mortbay.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>8.1.16.v20140903</version> 
       <configuration> 
        <stopKey>CTRL+C</stopKey> 
        <stopPort>8999</stopPort> 
        <systemProperties> 
         <systemProperty> 
          <name>xwork.loggerFactory</name> 
          <value>com.opensymphony.xwork2.util.logging.log4j2.Log4j2LoggerFactory</value> 
         </systemProperty> 
        </systemProperties> 
        <scanIntervalSeconds>10</scanIntervalSeconds> 
        <webAppSourceDirectory>${basedir}/src/main/webapp/</webAppSourceDirectory> 
        <webAppConfig> 
         <descriptor>${basedir}/src/main/webapp/WEB-INF/web.xml</descriptor> 
        </webAppConfig> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

ошибки

[INFO] Scanning for projects... 
[ERROR] [ERROR] Some problems were encountered while processing the POMs: 
[ERROR] Resolving expression: '${log4j2.version}': Detected the following recursive expression cycle in 'log4j2.version': [log4j2.version] @ 
[ERROR] Resolving expression: '${log4j2.version}': Detected the following recursive expression cycle in 'log4j2.version': [log4j2.version] @ 
[ERROR] 'dependencies.dependency.version' for org.apache.logging.log4j:log4j-core:jar must be a valid version but is '${log4j2.version}'. @ line 41, column 22 
@ 
[ERROR] The build could not read 1 project -> [Help 1] 
[ERROR] 
[ERROR] The project de.sambohl.brw:brw:1.0-SNAPSHOT (/Users/philipp/IdeaProjects/brw/pom.xml) has 3 errors 
[ERROR]  Resolving expression: '${log4j2.version}': Detected the following recursive expression cycle in 'log4j2.version': [log4j2.version] -> [Help 2] 
[ERROR]  Resolving expression: '${log4j2.version}': Detected the following recursive expression cycle in 'log4j2.version': [log4j2.version] -> [Help 2] 
[ERROR]  'dependencies.dependency.version' for org.apache.logging.log4j:log4j-core:jar must be a valid version but is '${log4j2.version}'. @ line 41, column 22 
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. 
[ERROR] Re-run Maven using the -X switch to enable full debug logging. 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/ProjectBuildingException 
[ERROR] [Help 2] http://cwiki.apache.org/confluence/display/MAVEN/InterpolationCycleException 

Process finished with exit code 1 
+0

предоставить некоторую ценность log4j2.version – Jobin

ответ

2

Ваша проблема здесь

<log4j2.version>${log4j2.version}</log4j2.version> 

Действительно, ваша ошибка означает, что «$ {log4j2.version}" не является допустимой версией.

Вы должны установить явно версию log4j2 вместо «$ {log4j2.version}», например, вы могли бы использовать 2.7, если вы хотите использовать последнюю версию (которая также версия, на которой org.apache.struts:struts2-core:2.5.5 полагается), см. список существующих версий here.

Так что попробуйте это

<log4j2.version>2.7</log4j2.version> 
+1

Большое спасибо! – FlugRost

0

Проблема с < log4j2.version> свойства.

Предполагается, что свойство в файле POM будет постоянным значением, которое может быть заменено при передаче свойства. Но в вашем случае вы указываете на то же свойство, которое является ошибкой.

, если вы хотите включить конкретную версию затем предоставить его в < log4j2.version> тег как:

< log4j2.version> 1.2.17 < /log4j2.version>

или вы можете использовать

< log4j2.version> последняя < /log4j2.version>

«последняя» ключевое слово может автоматически выбрать самую последнюю версию фр зависимостей om maven репозиторий

Смежные вопросы