Last active
December 4, 2015 06:55
-
-
Save zhugw/63e98f99098156e8173a to your computer and use it in GitHub Desktop.
spring boot devtools load beandozermapper twice and cause LinkageError sample
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Foo project | |
@SpringBootApplication | |
public class FooApplication { | |
public static void main(String[] args) { | |
SpringApplication.run(FooApplication.class, args); | |
} | |
@Bean | |
public Mapper fooDozerBeanMapper() { | |
DozerBeanMapper mapper = BeanMapper.getDozerBeanMapper(); | |
List<String> mappingFiles = new ArrayList(mapper.getMappingFiles()); | |
mappingFiles.add("foo-dozer-custom-convert.xml"); | |
mapper.setMappingFiles(mappingFiles); | |
return mapper; | |
} | |
} | |
/src/main/resources/META-INF/spring-devtools.properties | |
spring-devtools.properties | |
pom.xml | |
<?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>com.sample</groupId> | |
<artifactId>foo</artifactId> | |
<version>0.0.1-SNAPSHOT</version> | |
<packaging>jar</packaging> | |
<parent> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-starter-parent</artifactId> | |
<version>1.3.0.RELEASE</version> | |
<relativePath /> <!-- lookup parent from repository --> | |
</parent> | |
<dependencies> | |
<dependency> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-starter-web</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-devtools</artifactId> | |
</dependency> | |
<dependency> | |
<groupId>net.sf.dozer</groupId> | |
<artifactId>dozer</artifactId> | |
<version>5.5.1</version> | |
</dependency> | |
<dependency> | |
<groupId>com.sample</groupId> | |
<artifactId>bar</artifactId> | |
<version>1.0-SNAPSHOT</version> | |
</dependency> | |
<dependency> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-starter-test</artifactId> | |
<scope>test</scope> | |
</dependency> | |
</dependencies> | |
<build> | |
<plugins> | |
<plugin> | |
<groupId>org.springframework.boot</groupId> | |
<artifactId>spring-boot-maven-plugin</artifactId> | |
</plugin> | |
</plugins> | |
</build> | |
</project> | |
===================================== | |
bar project | |
public class BeanMapper { | |
private final static DozerBeanMapper dozer = new DozerBeanMapper(); | |
public static DozerBeanMapper getDozerBeanMapper() { | |
return dozer; | |
} | |
} | |
pom.xml | |
<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>com.sample</groupId> | |
<artifactId>bar</artifactId> | |
<version>1.0-SNAPSHOT</version> | |
<packaging>jar</packaging> | |
<properties> | |
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | |
<java.version>1.8</java.version> | |
</properties> | |
<dependencies> | |
<dependency> | |
<groupId>net.sf.dozer</groupId> | |
<artifactId>dozer</artifactId> | |
<version>5.5.1</version> | |
</dependency> | |
</dependencies> | |
<build> | |
<pluginManagement> | |
<plugins> | |
<plugin> | |
<groupId>org.apache.maven.plugins</groupId> | |
<artifactId>maven-compiler-plugin</artifactId> | |
<version>3.1</version> | |
<configuration> | |
<source>1.8</source> | |
<target>1.8</target> | |
<encoding>utf-8</encoding> | |
</configuration> | |
</plugin> | |
</plugins> | |
</pluginManagement> | |
</build> | |
</project> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment