How to exclude a set of packages from maven build jar?

后端 未结 3 854
迷失自我
迷失自我 2021-01-02 01:57

That\'s all I need. Additional details: I have a src/bootstrap/java folder and the regular src/main/java folder. Each one needs to go to a separate jar for obvious reasons.

相关标签:
3条回答
  • 2021-01-02 02:24

    Maybe use ProGuard? It's what I use to strip out unused code. It seems that you can add it as a Maven plugin.

    0 讨论(0)
  • 2021-01-02 02:28

    I think you can take a look at this before deciding to generate two jars from one pom.

    Maven best practice for generating multiple jars with different/filtered classes?

    If you still decide to get two jars, you can probably do it using this. You have to specify the proper exclusions.

    <build>
        <plugins>
          <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <executions>
              <execution>
                <id>only-bootstrap</id>
                <goals><goal>jar</goal></goals>
                <phase>package</phase>
                <configuration>
                  <classifier>only-library</classifier>
                  <includes>
                    <include>**/*</include>
                  </includes>
                  <excludes>
                    <exclude>**/main*</exclude>
                  </excludes>
                </configuration>
              </execution>
              <execution>
                <id>only-main</id>
                <goals><goal>jar</goal></goals>
                <phase>package</phase>
                <configuration>
                  <classifier>everything</classifier>
                  <includes>
                    <include>**/*</include>
                  </includes>
                  <excludes>
                    <exclude>**/bootstrap*</exclude>
                  </excludes>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    
    0 讨论(0)
  • 2021-01-02 02:37

    You gotta use "default-jar" for the ID:

      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.3.1</version>
        <executions>
          <execution>
            <id>only-bootstrap</id>
            <goals><goal>jar</goal></goals>
            <phase>package</phase>
            <configuration>
              <classifier>bootstrap</classifier>
              <includes>
                <include>sun/**/*</include>
              </includes>
            </configuration>
          </execution>
          <execution>
            <id>default-jar</id>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <excludes>
                <exclude>sun/**/*</exclude>
              </excludes>
            </configuration>
          </execution>
        </executions>
      </plugin>
    
    0 讨论(0)
提交回复
热议问题