создать Maven проект с зависимостями в финальной банке

У меня есть исполняемый Java-проект, который я создал с помощью maven и eclipse, в моем файле pom.xml я очень хорошо описываю зависимости, которые мне требуются для проекта и всего, начиная с eclipse, однако этот исполняемый файл в производственной среде не исчезает. чтобы запустить из затмения и при попытке запустить его вне IDE, это дает мне ошибки, такие как java.lang.NoClassDefFoundError: org/apache/logging/log4j/LogManager в классах, которые являются зависимостями. При рассмотрении окончательного варианта .jar зависимости не могут быть найдены в jar (в проекте они не перемещаются , они остаются внутри банки в известной папке ./lib).

Я нашел в следующей ссылке документацию об этом, https://www.baeldung.com/executable-jar-with-maven , где тот, который лучше всего подходит для того, что я хочу сделать это с плагином maven-assembly-plugin, однако он все еще не копирует зависимости внутри фляги.

Некоторые вещи, которые нужно знать: у моего проекта нет папки ./lib, когда я создаю проект, я делаю это с помощью команды mvn clean install.

Я благодарен за ваше сотрудничество, указав, есть ли необходимость что-то настраивать или выполнять какие-либо другие действия. Спасибо.

Архив pom.xml

4.0.0
com.mi_app
MiAppEjecutable
1.0.0.0
jar


  
    org.apache.logging.log4j
    log4j-api
    2.12.1
  
  
    org.apache.logging.log4j
    log4j-core
    2.12.1
  


  ${project.artifactId}
  src/main/java
  
    
      
        org.apache.maven.plugins
        maven-jar-plugin
        3.1.2
      
      
        maven-clean-plugin
        3.1.0
      
      
        org.apache.maven.plugins
        maven-assembly-plugin
        3.1.1
        
          
            package
            
              single
            
            
              
                
                  com.mi_app.MiClaseEjecutable
                
              
              
                jar-with-dependencies
              
            
          
        
      
      
        org.apache.maven.plugins
        maven-compiler-plugin
        ${version.compiler.plugin}
        
          ${maven.compiler.source}
          ${maven.compiler.target}
        
      
      
        maven-install-plugin
        3.0.0-M1
      
    
  

1
задан 25.10.2019, 21:40
1 ответ

после многих доказательств двигая для стороны или другой файл pom.xml, она soluciГіn был доказательством снимания tag <pluginManagement>, который включает tag <plugins>, просвет оставляет этот Гєltimo как сын tag <build>

<build>
  <finalName>${project.artifactId}</finalName>
  <sourceDirectory>src/main/java</sourceDirectory>
  <plugins>
    <plugin>
      .
      .
      .
  </plugins>
</build>

Другая важная вещь, которую он замечает, дело в том, что у зависимостей должно быть очевидный tag

<version>${version_dependencia}</version>

Это, чем он имел версии без этого tag, но с tag

<scope>provider</scope>

в этом случае зависимости не загружались и поэтому не были упакованы.

0
ответ дан 10.11.2019, 23:15