Есть ли способ отличить guish толстую банку от тонкой? - PullRequest
0 голосов
/ 12 июля 2020

Я не хочу, чтобы в пути к классам были толстые банки. Есть ли способ определить, скомпилирован ли определенный файл jar из нескольких файлов jar или нет (помимо просмотра его размера)?

Ответы [ 2 ]

1 голос
/ 12 июля 2020

Это невозможно. Единственный способ - посмотреть, включены ли зависимости библиотеки. Предположим, у вас есть библиотека с классом a / b / Foo и она зависит от внешней библиотеки (с одним классом) bar.jar с классом c / d / Baz. Теперь, если в банке есть оба класса (a / b / Foo и c / d / Baz), я бы сказал, что это толстая банка.

0 голосов
/ 12 июля 2020

, если вы используете плагин maven, указанный ниже

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>

, вы можете использовать конфигурацию, содержащую descriptorRefs , которые сообщают maven, какой тип сборки следует создавать в этой конфигурации.

пример:

    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration> 

jar-with-dependencies - это предварительно изготовленный дескриптор maven, указывающий maven на создание jar-файла с зависимостями, аналогичными термину FatJar

, затем просто запустите mvn clean package .

Для тонкого Jar у меня нет решения, но если у вас есть проект весенней загрузки, это репо может это сделать. https://mvnrepository.com/artifact/org.springframework.boot.experimental/spring-boot-thin-layout/1.0.25.RELEASE

возможно, вам поможет сочетание двух.

...