Fixes native:metadata-copy
Maven Goal not available in Spring Boot Starter (#571)
This commit is contained in:
parent
089dbc294b
commit
d9d3b58cfc
8
.github/workflows/ci.yml
vendored
8
.github/workflows/ci.yml
vendored
@ -24,7 +24,7 @@ env:
|
||||
MAVEN_OPTS: -Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true
|
||||
|
||||
jobs:
|
||||
# We only execute nativeTest on `dynamic-datasource-spring-boot3-starter`, since only Spring Boot OSS 3 support provides support for GraalVM Native Image
|
||||
# We only execute nativeTest on `dynamic-datasource-spring-boot3-starter`, since only Spring Boot OSS 3 provides support for GraalVM Native Image
|
||||
test-graalvm-ce-ci:
|
||||
name: NativeTest CI - GraalVM CE ${{ matrix.java-version }} on ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
@ -33,7 +33,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ ubuntu-latest ]
|
||||
java-version: [ '17.0.8' ]
|
||||
java-version: [ '21' ]
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: graalvm/setup-graalvm@v1
|
||||
@ -44,7 +44,7 @@ jobs:
|
||||
cache: 'maven'
|
||||
- name: Build Spring Boot Starter 3 test with Maven
|
||||
run: |
|
||||
./mvnw -am -pl dynamic-datasource-spring-boot3-starter -PnativeTestInSpringBoot -T1C -B -e clean test
|
||||
./mvnw -PnativeTestInSpringBoot -T1C -B -e clean test
|
||||
test-hotspot-jdk-ci:
|
||||
name: Test CI - JDK ${{ matrix.java-version }} on ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
@ -52,7 +52,7 @@ jobs:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ ubuntu-latest ]
|
||||
java-version: [ '17', '20' ]
|
||||
java-version: [ '17', '21-ea' ]
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Setup java
|
||||
|
@ -41,13 +41,13 @@ failed to discover tests 的测试库。
|
||||
sudo apt install unzip zip curl sed -y
|
||||
curl -s "https://get.sdkman.io" | bash
|
||||
source "$HOME/.sdkman/bin/sdkman-init.sh"
|
||||
sdk install java 17.0.8-graalce
|
||||
sdk use java 17.0.8-graalce
|
||||
sdk install java 21-graalce
|
||||
sdk use java 21-graalce
|
||||
sudo apt-get install build-essential libz-dev zlib1g-dev -y
|
||||
|
||||
git clone git@github.com:baomidou/dynamic-datasource.git
|
||||
cd ./dynamic-datasource/
|
||||
./mvnw -am -pl dynamic-datasource-spring-boot3-starter -PnativeTestInSpringBoot -T1C -B clean test
|
||||
./mvnw -PnativeTestInSpringBoot -T1C -e clean test
|
||||
```
|
||||
|
||||
贡献者在提交 PR 后,位于 Github Actions 的 CI 将进行此验证。如果 nativeTest 执行失败,请跳转到[本文的 2.2 一节](./CONTRIBUTING.md)。
|
||||
@ -69,8 +69,6 @@ System Property 屏蔽部分单元测试在 GraalVM Native Image 下运行。
|
||||
调整 Maven Profile 和 GraalVM Tracing Agent 的 Filter 链。
|
||||
|
||||
以下命令仅为 `dynamic-datasource-spring-boot3-starter` 生成 Conditioanl 形态的 GraalVM Reachability Metadata 的一个举例。
|
||||
在 https://github.com/graalvm/native-build-tools/issues/500 关闭之前,你都需要手动调整 `native-image-configure` 的 `input-dir`
|
||||
为 `./mvnw -PgenerateMetadata -DskipNativeTests -e clean test` 真实的输出目录。
|
||||
|
||||
对于测试类和测试文件独立使用的 GraalVM Reachability Metadata,贡献者应该放置到相关子模块对应的
|
||||
`${project.basedir}/src/test/resources/META-INF/native-image/${project.artifactId}-test-metadata/` 文件夹下。`${}` 内为
|
||||
@ -78,20 +76,9 @@ POM 4.0 的常规系统变量,自行替换。
|
||||
|
||||
```bash
|
||||
git clone git@github.com:baomidou/dynamic-datasource.git
|
||||
|
||||
cd ./dynamic-datasource/
|
||||
|
||||
./mvnw -PgenerateMetadata -DskipNativeTests -e clean test
|
||||
|
||||
mkdir -p "./dynamic-datasource-spring-boot3-starter/src/test/resources/META-INF/native-image/com.baomidou/dynamic-datasource-spring-boot3-starter/"
|
||||
|
||||
native-image-configure generate-conditional\
|
||||
--user-code-filter="./native-image/user-code-filter.json"\
|
||||
--class-name-filter="./native-image/extra-filter.json"\
|
||||
--input-dir="./dynamic-datasource-spring-boot3-starter/target/native/agent-output/test/session-45270-20230907T013541Z/"\
|
||||
--output-dir="./dynamic-datasource-spring-boot3-starter/src/main/resources/META-INF/native-image/com.baomidou/dynamic-datasource-spring-boot3-starter/"
|
||||
|
||||
./mvnw -am -pl dynamic-datasource-spring-boot3-starter -PnativeTestInSpringBoot -T1C -B -e clean test
|
||||
./mvnw -PgenerateMetadata -DskipNativeTests -e -T1C clean test native:metadata-copy
|
||||
./mvnw -PnativeTestInSpringBoot -T1C -e clean test
|
||||
```
|
||||
|
||||
请手动删除无任何具体条目的 JSON 文件。
|
||||
|
@ -60,4 +60,18 @@
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.graalvm.buildtools</groupId>
|
||||
<artifactId>native-maven-plugin</artifactId>
|
||||
<version>${native-maven-plugin.version}</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
@ -6,10 +6,5 @@
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"[Lcom.sun.management.internal.DiagnosticCommandInfo;"
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.util.Arrays",
|
||||
"methods":[{"name":"asList","parameterTypes":["java.lang.Object[]"] }]
|
||||
}
|
||||
]
|
||||
|
@ -274,175 +274,5 @@
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.DynamicRoutingDataSource"},
|
||||
"name":"com.baomidou.dynamic.datasource.strategy.LoadBalanceDynamicDataSourceStrategy",
|
||||
"methods":[{"name":"<init>","parameterTypes":[] }]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"com.ibm.icu.text.Collator"
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.toolkit.DsConfigUtil"},
|
||||
"name":"java.beans.PropertyVetoException"
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.DynamicRoutingDataSource"},
|
||||
"name":"java.io.Closeable",
|
||||
"queryAllPublicMethods":true
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.lang.Boolean",
|
||||
"fields":[{"name":"TYPE"}]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.lang.Byte",
|
||||
"fields":[{"name":"TYPE"}]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.lang.Character",
|
||||
"fields":[{"name":"TYPE"}]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.DynamicRoutingDataSource"},
|
||||
"name":"java.lang.Cloneable",
|
||||
"queryAllPublicMethods":true
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.lang.Deprecated",
|
||||
"queryAllPublicMethods":true
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.lang.Double",
|
||||
"fields":[{"name":"TYPE"}]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.lang.Float",
|
||||
"fields":[{"name":"TYPE"}]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.lang.Integer",
|
||||
"fields":[{"name":"TYPE"}]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.aop.DynamicDataSourceAnnotationAdvisor$AnnotationMethodPoint$AnnotationMethodMatcher"},
|
||||
"name":"java.lang.Iterable",
|
||||
"methods":[{"name":"forEach","parameterTypes":["java.util.function.Consumer"] }, {"name":"spliterator","parameterTypes":[] }]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.lang.Long",
|
||||
"fields":[{"name":"TYPE"}]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.DynamicRoutingDataSource"},
|
||||
"name":"java.lang.Object",
|
||||
"queryAllDeclaredMethods":true
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.aop.DynamicDataSourceAnnotationAdvisor$AnnotationMethodPoint$AnnotationMethodMatcher"},
|
||||
"name":"java.lang.Object",
|
||||
"methods":[{"name":"equals","parameterTypes":["java.lang.Object"] }, {"name":"getClass","parameterTypes":[] }, {"name":"hashCode","parameterTypes":[] }, {"name":"notify","parameterTypes":[] }, {"name":"notifyAll","parameterTypes":[] }, {"name":"toString","parameterTypes":[] }, {"name":"wait","parameterTypes":[] }, {"name":"wait","parameterTypes":["long"] }, {"name":"wait","parameterTypes":["long","int"] }]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.toolkit.DsConfigUtil"},
|
||||
"name":"java.lang.Object",
|
||||
"queryAllPublicMethods":true
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.toolkit.DsConfigUtil"},
|
||||
"name":"java.lang.ObjectBeanInfo"
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.toolkit.DsConfigUtil"},
|
||||
"name":"java.lang.ObjectCustomizer"
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.lang.Short",
|
||||
"fields":[{"name":"TYPE"}]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.lang.StackTraceElement",
|
||||
"queryAllPublicMethods":true
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.lang.String",
|
||||
"fields":[{"name":"TYPE"}]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.lang.Void",
|
||||
"fields":[{"name":"TYPE"}]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.math.BigDecimal"
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.math.BigInteger"
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.sql.SQLException",
|
||||
"fields":[{"name":"next"}]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.util.Date"
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.util.PropertyPermission",
|
||||
"methods":[{"name":"<init>","parameterTypes":["java.lang.String","java.lang.String"] }]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.util.logging.LogManager",
|
||||
"methods":[{"name":"getLoggingMXBean","parameterTypes":[] }]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"java.util.logging.LoggingMXBean",
|
||||
"queryAllPublicMethods":true
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.DynamicRoutingDataSource"},
|
||||
"name":"javax.naming.Referenceable",
|
||||
"queryAllPublicMethods":true
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.aop.DynamicDataSourceAnnotationAdvisor$AnnotationMethodPoint$AnnotationMethodMatcher"},
|
||||
"name":"javax.sql.CommonDataSource",
|
||||
"queryAllPublicMethods":true,
|
||||
"methods":[{"name":"createShardingKeyBuilder","parameterTypes":[] }]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.DynamicRoutingDataSource"},
|
||||
"name":"javax.sql.ConnectionPoolDataSource",
|
||||
"queryAllPublicMethods":true
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.DynamicRoutingDataSource"},
|
||||
"name":"javax.sql.DataSource",
|
||||
"queryAllPublicMethods":true
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.aop.DynamicDataSourceAnnotationAdvisor$AnnotationMethodPoint$AnnotationMethodMatcher"},
|
||||
"name":"javax.sql.DataSource",
|
||||
"queryAllPublicMethods":true,
|
||||
"methods":[{"name":"createConnectionBuilder","parameterTypes":[] }]
|
||||
},
|
||||
{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"name":"sun.security.provider.SHA2$SHA256",
|
||||
"methods":[{"name":"<init>","parameterTypes":[] }]
|
||||
}
|
||||
]
|
||||
|
@ -1,8 +0,0 @@
|
||||
{
|
||||
"resources":{
|
||||
"includes":[{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"pattern":"\\QMETA-INF/services/java.sql.Driver\\E"
|
||||
}]},
|
||||
"bundles":[]
|
||||
}
|
@ -1,17 +1,29 @@
|
||||
{
|
||||
"resources":{
|
||||
"includes":[{
|
||||
"includes":[{
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.fixture.v3.NestDataSourceTest"},
|
||||
"pattern":"\\Qdb/add-remove-datasource.sql\\E"
|
||||
}, {
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.creator.druid.DruidDataSourceCreator"},
|
||||
"pattern":"\\QMETA-INF/druid-driver.properties\\E"
|
||||
}, {
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.creator.druid.DruidDataSourceCreator"},
|
||||
"pattern":"\\QMETA-INF/druid-filter.properties\\E"
|
||||
}, {
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"pattern":"\\Qorg/h2/util/data.zip\\E"
|
||||
}]},
|
||||
}, {
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.creator.druid.DruidDataSourceCreator"},
|
||||
"pattern":"\\QMETA-INF/druid-driver.properties\\E"
|
||||
}, {
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.creator.druid.DruidDataSourceCreator"},
|
||||
"pattern":"\\QMETA-INF/druid-filter.properties\\E"
|
||||
}, {
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.creator.druid.DruidDataSourceCreator"},
|
||||
"pattern":"\\QMETA-INF/services/com.alibaba.druid.filter.Filter\\E"
|
||||
}, {
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"pattern":"\\QMETA-INF/services/java.lang.System$LoggerFinder\\E"
|
||||
}, {
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"pattern":"\\QMETA-INF/services/java.sql.Driver\\E"
|
||||
}, {
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"pattern":"\\Qorg/h2/util/data.zip\\E"
|
||||
}, {
|
||||
"condition":{"typeReachable":"com.baomidou.dynamic.datasource.provider.AbstractJdbcDataSourceProvider"},
|
||||
"pattern":"jdk.jfr:\\Qjdk/jfr/internal/query/view.ini\\E"
|
||||
}]},
|
||||
"bundles":[]
|
||||
}
|
||||
|
@ -6,6 +6,14 @@
|
||||
{"excludeClasses": "com.sun.management.**"},
|
||||
{"excludeClasses": "sun.management.**"},
|
||||
{"excludeClasses": "javax.management.**"},
|
||||
{"excludeClasses": "java.**"},
|
||||
{"includeClasses": "java.util.Properties"},
|
||||
{"includeClasses": "java.lang.Thread"},
|
||||
{"excludeClasses": "sun.misc.**"},
|
||||
{"excludeClasses": "sun.security.**"},
|
||||
{"excludeClasses": "com.ibm.icu.text.**"},
|
||||
{"excludeClasses": "javax.naming.**"},
|
||||
{"excludeClasses": "javax.sql.**"},
|
||||
{"excludeClasses": "org.h2.**"},
|
||||
{"excludeClasses": "oracle.ucp.**"},
|
||||
{"excludeClasses": "org.apache.tomcat.jdbc.**"},
|
||||
|
192
pom.xml
192
pom.xml
@ -59,7 +59,7 @@
|
||||
<commons-dbcp2.version>2.9.0</commons-dbcp2.version>
|
||||
<p6spy.version>3.9.1</p6spy.version>
|
||||
<seata.version>1.4.2</seata.version>
|
||||
<lombok.version>1.18.28</lombok.version>
|
||||
<lombok.version>1.18.30</lombok.version>
|
||||
<h2.version>2.2.222</h2.version>
|
||||
<atomikos.version>4.0.6</atomikos.version>
|
||||
<junit-jupiter.version>5.10.0</junit-jupiter.version>
|
||||
@ -75,7 +75,7 @@
|
||||
<license-maven-plugin.version>4.2</license-maven-plugin.version>
|
||||
<maven-gpg-plugin.version>3.1.0</maven-gpg-plugin.version>
|
||||
<nexus-staging-maven-plugin.version>1.6.13</nexus-staging-maven-plugin.version>
|
||||
<native-maven-plugin.version>0.9.26</native-maven-plugin.version>
|
||||
<native-maven-plugin.version>0.9.27</native-maven-plugin.version>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
@ -345,98 +345,120 @@
|
||||
<profile>
|
||||
<id>generateMetadata</id>
|
||||
<properties>
|
||||
<java.version>17</java.version>
|
||||
<java.version>21</java.version>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
<!-- We do not collect GraalVM Reachability Metadata from `dynamic-datasource-spring-boot-starter` because only Spring Boot OSS 3 support provides support for GraalVM Native Image-->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>${maven-surefire-plugin.version}</version>
|
||||
<configuration>
|
||||
<excludes>
|
||||
<exclude>com.baomidou.dynamic.datasource.fixture.v1.**</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.graalvm.buildtools</groupId>
|
||||
<artifactId>native-maven-plugin</artifactId>
|
||||
<version>${native-maven-plugin.version}</version>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>build-native</id>
|
||||
<goals>
|
||||
<goal>compile-no-fork</goal>
|
||||
</goals>
|
||||
<phase>package</phase>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>test-native</id>
|
||||
<goals>
|
||||
<goal>test</goal>
|
||||
</goals>
|
||||
<phase>test</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<agent>
|
||||
<enabled>true</enabled>
|
||||
<defaultMode>Conditional</defaultMode>
|
||||
<modes>
|
||||
<conditional>
|
||||
<userCodeFilterPath>${user.dir}/native-image/user-code-filter.json</userCodeFilterPath>
|
||||
<extraFilterPath>${user.dir}/native-image/extra-filter.json</extraFilterPath>
|
||||
<parallel>true</parallel>
|
||||
</conditional>
|
||||
</modes>
|
||||
</agent>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<includes>
|
||||
<include>com.baomidou.dynamic.datasource.fixture.v3.**</include>
|
||||
</includes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.graalvm.buildtools</groupId>
|
||||
<artifactId>native-maven-plugin</artifactId>
|
||||
<version>${native-maven-plugin.version}</version>
|
||||
<extensions>true</extensions>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>build-native</id>
|
||||
<goals>
|
||||
<goal>compile-no-fork</goal>
|
||||
</goals>
|
||||
<phase>package</phase>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>test-native</id>
|
||||
<goals>
|
||||
<goal>test</goal>
|
||||
</goals>
|
||||
<phase>test</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
<configuration>
|
||||
<agent>
|
||||
<enabled>true</enabled>
|
||||
<defaultMode>Conditional</defaultMode>
|
||||
<modes>
|
||||
<conditional>
|
||||
<userCodeFilterPath>${user.dir}/native-image/user-code-filter.json
|
||||
</userCodeFilterPath>
|
||||
<extraFilterPath>${user.dir}/native-image/extra-filter.json
|
||||
</extraFilterPath>
|
||||
<parallel>true</parallel>
|
||||
</conditional>
|
||||
</modes>
|
||||
<metadataCopy>
|
||||
<disabledStages>
|
||||
<stage>main</stage>
|
||||
</disabledStages>
|
||||
<merge>false</merge>
|
||||
<outputDirectory>
|
||||
${project.basedir}/src/main/resources/META-INF/native-image/${project.groupId}/${project.artifactId}/
|
||||
</outputDirectory>
|
||||
</metadataCopy>
|
||||
</agent>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>nativeTestInSpringBoot</id>
|
||||
<properties>
|
||||
<java.version>17</java.version>
|
||||
<java.version>21</java.version>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>process-test-aot</id>
|
||||
<goals>
|
||||
<goal>process-test-aot</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.graalvm.buildtools</groupId>
|
||||
<artifactId>native-maven-plugin</artifactId>
|
||||
<extensions>true</extensions>
|
||||
<configuration>
|
||||
<classesDirectory>${project.build.outputDirectory}</classesDirectory>
|
||||
<metadataRepository>
|
||||
<enabled>true</enabled>
|
||||
</metadataRepository>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>native-test</id>
|
||||
<goals>
|
||||
<goal>test</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<includes>
|
||||
<include>com.baomidou.dynamic.datasource.fixture.v3.**</include>
|
||||
</includes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>process-test-aot</id>
|
||||
<goals>
|
||||
<goal>process-test-aot</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.graalvm.buildtools</groupId>
|
||||
<artifactId>native-maven-plugin</artifactId>
|
||||
<version>${native-maven-plugin.version}</version>
|
||||
<extensions>true</extensions>
|
||||
<configuration>
|
||||
<classesDirectory>${project.build.outputDirectory}</classesDirectory>
|
||||
<metadataRepository>
|
||||
<enabled>true</enabled>
|
||||
</metadataRepository>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>test-native</id>
|
||||
<goals>
|
||||
<goal>test</goal>
|
||||
</goals>
|
||||
<phase>test</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
Loading…
x
Reference in New Issue
Block a user