org.jacoco.agent.rt.internal_4a7f17c.asm.MethodTooLargeException: Method too large

50 views
Skip to first unread message

Francisco Lorenzo

unread,
Oct 27, 2023, 2:16:04 PM10/27/23
to JaCoCo and EclEmma Users
Hi! my pom.xml is:

<?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>deors.training</groupId>
    <artifactId>workshop-pipelines</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>workshop-pipelines</name>
    <description>Java + Maven + Spring Boot application to be used as an example
                 for the workshop on Jenkins CI/CD pipelines.</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.12</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <java.version>20</java.version>

        <junit.version>5.8.2</junit.version> <!-- provided by spring-boot-starter-test pom -->
        <jmockit.version>1.49</jmockit.version>
        <jacoco.version>0.8.10</jacoco.version>
        <selenium.version>4.10.0</selenium.version>
        <selenium-htmlunit.version>4.10.0</selenium-htmlunit.version>
        <pitest.version>1.14.1</pitest.version>
        <pitest-junit5.version>1.2.0</pitest-junit5.version>
        <jmeter-plugin.version>3.5.0</jmeter-plugin.version>
        <jmeter.version>5.4.3</jmeter.version>
        <dependency-check.version>8.3.1</dependency-check.version>

        <jmockit.path>${settings.localRepository}/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar</jmockit.path>
        <jmockit.agentConfig>-javaagent:${jmockit.path}</jmockit.agentConfig>

        <jacoco.path>${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco.version}/org.jacoco.agent-${jacoco.version}-runtime.jar</jacoco.path>
        <jacoco.utReport>${project.build.directory}/jacoco.exec</jacoco.utReport>
        <jacoco.itReport>${project.build.directory}/jacoco-it.exec</jacoco.itReport>
        <jacoco.utAgentConfig>-javaagent:${jacoco.path}=destfile=${jacoco.utReport}</jacoco.utAgentConfig>
        <jacoco.itAgentConfig>-javaagent:${jacoco.path}=destfile=${jacoco.itReport}</jacoco.itAgentConfig>

        <!-- test properties -->
        <jmeter.target.host>localhost</jmeter.target.host>
        <jmeter.target.port>8080</jmeter.target.port>
        <jmeter.target.root>/</jmeter.target.root>

        <!-- maven standard plugins-->
        <compiler.version>3.8.1</compiler.version>
        <surefire.version>2.22.2</surefire.version>
        <failsafe.version>2.22.2</failsafe.version>
        <dependency.version>3.1.1</dependency.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jmockit</groupId>
            <artifactId>jmockit</artifactId>
            <version>${jmockit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>htmlunit-driver</artifactId>
            <version>${selenium-htmlunit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.jacoco</groupId>
            <artifactId>org.jacoco.agent</artifactId>
            <classifier>runtime</classifier>
            <scope>test</scope>
            <version>${jacoco.version}</version>
        </dependency>
    </dependencies>

    <build>
        <finalName>${project.artifactId}</finalName>

        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <!-- copy JaCoCo dependencies to include them in the Docker image
                 and to collect code coverage metrics during integration tests -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>${dependency.version}</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.jacoco</groupId>
                                    <artifactId>org.jacoco.agent</artifactId>
                                    <version>${jacoco.version}</version>
                                    <classifier>runtime</classifier>
                                    <destFileName>jacocoagent.jar</destFileName>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.jacoco</groupId>
                                    <artifactId>org.jacoco.cli</artifactId>
                                    <version>${jacoco.version}</version>
                                    <classifier>nodeps</classifier>
                                    <destFileName>jacococli.jar</destFileName>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- unit tests (with mocking and code coverage agents enabled) -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${surefire.version}</version>
                <configuration>
                    <argLine>${jmockit.agentConfig} ${jacoco.utAgentConfig}</argLine>
                    <excludes>
                        <exclude>**/*IntegrationTest.java</exclude>
                    </excludes>
                </configuration>
            </plugin>

            <!-- integration tests -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>${failsafe.version}</version>
                <configuration>
                    <!-- JaCoCo must be enabled on target app container to gather coverage
                         for integration tests, e.g. UI tests and API tests -->
                    <includes>
                        <include>**/*IntegrationTest.java</include>
                    </includes>
                </configuration>
                <!-- if activated, failsafe will run automatically on integration-test and verify goals -->
                <!--<executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>-->
            </plugin>

            <!-- mutation tests (with mocking agent enabled) -->
            <plugin>
                <groupId>org.pitest</groupId>
                <artifactId>pitest-maven</artifactId>
                <version>${pitest.version}</version>
                <configuration>
                    <jvmArgs>
                        <value>${jmockit.agentConfig}</value>
                    </jvmArgs>
                    <excludedTestClasses>
                        <param>*ApplicationTest</param>
                        <param>*IntegrationTest</param>
                    </excludedTestClasses>
                    <outputFormats>
                        <outputFormat>XML</outputFormat>
                    </outputFormats>
                </configuration>
                <!-- enable support for JUnit 5 in Pitest -->
                <dependencies>
                    <dependency>
                        <groupId>org.pitest</groupId>
                        <artifactId>pitest-junit5-plugin</artifactId>
                        <version>${pitest-junit5.version}</version>
                    </dependency>
                </dependencies>
                <!-- if activated, pitest will run automatically on integration-test goal -->
                <!--<executions>
                    <execution>
                        <goals>
                            <goal>mutationCoverage</goal>
                        </goals>
                    </execution>
                </executions>-->
            </plugin>

            <!-- performance tests -->
            <plugin>
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>${jmeter-plugin.version}</version>
                <configuration>
                    <testResultsTimestamp>false</testResultsTimestamp>
                    <propertiesUser>
                        <host>${jmeter.target.host}</host>
                        <port>${jmeter.target.port}</port>
                        <root>${jmeter.target.root}</root>
                    </propertiesUser>
                </configuration>
                <!-- if activated, jmeter will run automatically on integration-test and verify goals -->
                <!--<executions>
                    <execution>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>configure</goal>
                            <goal>jmeter</goal>
                            <goal>results</goal>
                        </goals>
                    </execution>
                </executions>-->
            </plugin>

            <!-- dependency vulnerability scan -->
            <plugin>
                <groupId>org.owasp</groupId>
                <artifactId>dependency-check-maven</artifactId>
                <version>${dependency-check.version}</version>
                <configuration>
                    <format>ALL</format>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>


I cannot solve the problem.
I look forward to hearing from you.

Thank you!



Reply all
Reply to author
Forward
0 new messages