代码之家  ›  专栏  ›  技术社区  ›  Navin Gelot

Jms依赖关系未解决?

  •  0
  • Navin Gelot  · 技术社区  · 6 年前

    您好,我已经创建了一个docker-compose.yml文件作为下面的配置

    version: '3'
    services:
      activemq:
        image: webcenter/activemq:latest
        ports:
          - 8161:8161
          - 61616:61616
          - 61613:61613
        environment:
          ACTIVEMQ_NAME: amq
          ACTIVEMQ_REMOVE_DEFAULT_ACCOUNT: 'True'
          ACTIVEMQ_ADMIN_LOGIN: admin
          ACTIVEMQ_ADMIN_PASSWORD: admin
        volumes:
          - /container_data/activemq/data:/data/activemq
          - /container_data/activemq/log:/var/log/activemq
    

    task startDocker(type: Exec) {
        if (Os.isFamily(Os.FAMILY_WINDOWS)) {
            commandLine 'cmd', '/c', 'docker-compose', '-f', './docker-compose.yml', 'up', '-d'
        } else {
            commandLine 'docker-compose', '-f', './docker-compose.yml', 'up', '-d'
        }
    }
    
    jar  {
        manifest {
            attributes 'Implementation-Title': 'Gradle Jar File Example',
                    'Implementation-Version': version,
                    'Main-Class': 'com.jms.MyServer'
        }
    }
    

    当我独立运行java应用程序时,它可以像 我正在使用以下命令中的配置:

    docker container inspect <container-id>
    

    但是当我跑的时候 罐子 无法找到的类的文件

    下面是我使用jar运行时遇到的一个错误

    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.NoClassDefFoundError: javax/jms/Destination
            at java.lang.Class.getDeclaredMethods0(Native Method)
            at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    

    1 回复  |  直到 6 年前
        1
  •  1
  •   lance-java    6 年前

    如果您想将依赖项打包到jar中,可以使用 shadow one-jar 或者它也不难手工推出自己的解决方案。

    application plugin 创建包含以下内容的zip或tar

    1. 依赖关系不和谐