`

Neo4j: mvn project and compile

 
阅读更多

I  build a mvn project in eclipse to add some neo4j server plugins and unmanaged extentions. When I run

mvn clean install

the result jar package just has the classes in my own project not include related dependencies such as spring data neo4j jars.

when add the following codes in pom.xml

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>fully.qualified.MainClass</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>
  </plugins>
</build>

and run 

mvn clean compile assembly:single

the result jar include all dependencies classes, also include the neo4j jars, which i expect the final jar exclude the neo4j classes that provoided by neo4j server.

 

Actually, using eclipse pom.xml editor to check the dependencies tree, find out neo4j related jars transitive dependencied by which jar, and exclude it  with the following sinppet

 

		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-neo4j-aspects</artifactId>
			<version>${neo4j.springdata.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.neo4j</groupId>
					<artifactId>*</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>jcl-over-slf4j</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
 

 

Some others suggest using shade plugin to exclude some dependencies, I tried but faild without any clues

but I keep it in the pom.xml and  using it to package the final jar

 

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-shade-plugin</artifactId>
     <version>2.3</version>
     <executions>
	<execution>
	   <phase>package</phase>
	   <goals>
	      <goal>shade</goal>
	   </goals>
	   <configuration>
		<createDependencyReducedPom>false</createDependencyReducedPom>
	        <artifactSet>
	            <excludes>
			<exclude>org.neo4j:*:jar:*</exclude>										
		    </excludes>
		</artifactSet>
	  </configuration>
	</execution>
      </executions>
</plugin>
 

 

mvn clean package shade:shade

 

use the command to show project dependencies

mvn dependency:tree -Ddetail=true

 

----------------------------

when I deploy my extentions jar with spring data neo4j related dependencies in plugins dir of neo4j server

I start neo4j server.      in

 

 

015-03-27 02:52:09.410+0000 ERROR [o.n.s.CommunityBootstrapper]: 
Failed to start Neo Server on port [7474]
org.neo4j.server.ServerStartupException:
 Starting Neo4j Server failed: Configuration problem: 
Unable to locate Spring NamespaceHandler for XML schema namespace 
[http://www.springframework.org/schema/context]
Offending resource: class path resource 
[META-INF/spring/application-context.xml]

 

google result helps

http://www.baeldung.com/unable-to-locate-spring-namespacehandler-for-xml-schema-namespace

http://robert-reiz.com/2011/11/14/832/

 

altering pom.xml

 

<build>
  <pluginManagement>
   <plugins>
     <plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-shade-plugin</artifactId>
	<version>2.0</version>
	<executions>
	  <execution>
	     <phase>package</phase>
	     <goals><goal>shade</goal></goals>
	     <configuration>
		<transformers>
		   <transformer
			implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
			<resource>META-INF/spring.handlers</resource>
		   </transformer>
		   <transformer
			implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
			<resource>META-INF/spring.schemas</resource>
		   </transformer>
		</transformers>
	       </configuration>
	     </execution>
	    </executions>
         </plugin>

       </plugins>
     </pluginManagement>
     <plugins>
	<plugin>
		   <groupId>org.apache.maven.plugins</groupId>
		   <artifactId>maven-shade-plugin</artifactId>
		  <version>2.3</version>
        </plugin>
     </plugins>
</build>
 
Note: must add the shade pulgin as above, otherwise it doesn't work to tranform

 

https://maven.apache.org/plugins/maven-shade-plugin/plugin-info.html

 

 

 

 

 

Perferences

https://jinahya.wordpress.com/2014/05/22/executable-jar-with-apache-maven/

http://stackoverflow.com/questions/574594/how-can-i-create-an-executable-jar-with-dependencies-using-maven

 

 

 

 

分享到:
评论

相关推荐

    vue-neo4j:vue使用D3对neo4 j进行可视化-源码开发技术-其它

    Neo4j Vue 安装步骤 克隆或下载该库到本地 下载neo4j并安装到本地,启动neo4j服务 进入到该工程的根目录,输入命令:npm run update进行npm包的导入 使用命令:npm run dev启动该工程 默认端口是:8081 neo4j账号...

    vue-neo4j:vue使用D3对neo4j进行可视化源码开发技术-其它

    Neo4j Vue 安装步骤 克隆或下载该库到本地 下载neo4j并安装到本地,启动neo4j服务 进入到该工程的根目录,输入命令:npm run update进行npm包的导入 使用命令:npm run dev启动该工程 默认端口是:8081 neo4j账号...

    Nested-Class-Models-Rest-Api-Neo4j:在休息环境中作为 neo4j 扩展实现的嵌套类模型

    通过在 conf/neo4j-server.properties 中添加一行来配置 Neo4j: org.neo4j.server.thirdparty_jaxrs_classes=org.neo4j.example.unmanagedextension=/example 启动 Neo4j 服务器。 写评论 curl ...

    movies-java-spring-data-neo4j:使用Spring Data Neo4j的Neo4j电影示例

    电影示例应用 如何一起使用Spring Boot,Spring Data和Neo4j。 Spring Data Neo4j可以在基于Spring的应用程序中方便地集成Neo4j。 它提供了对象图映射(OGM)功能以及Spring Data项目共有的其他功能。 笔记该项目...

    neo4j-jdbc:带有BOLT协议的Neo4j 3.x的Neo4j JDBC驱动程序

    该驱动程序支持各种类型的数据库传输: 通过使用jdbc:neo4j:bolt://&lt;host&gt;:&lt;port&gt;/的Bolt协议(3.0.x至3.2.x) 通过使用jdbc:neo4j:http://&lt;host&gt;:&lt;port&gt;/的HTTP协议(2.x +) 展望未来,还将支持: 直接文件连接...

    vue-neo4j:vue使用D3对neo4j进行可视化

    Neo4j Vue安装步骤克隆或下载该库到本地下载neo4j并安装到本地,启动neo4j服务进入到该工程的根目录,输入命令:npm run update进行npm包的导入使用命令:npm run dev启动该工程默认端口是:8081 neo4j账号信息: ...

    sails-restful-neo4j:SailsWaterline RESTful Neo4j 适配器

    宁静的 Neo4j 2.1+ 用于 Neo4j 宁静 apis 的 Sails.js 水线适配器安装从 NPM 安装。 $ npm install sails-restful-neo4j兼容性这与风帆 0.10 及更高版本兼容帆配置将以下配置添加到 config/connections.js 文件中: ...

    bitnami-docker-neo4j:Neo4j的Bitnami Docker映像

    DR $ docker run --name neo4j bitnami/neo4j:latestDocker撰写$ curl -sSL https://raw.githubusercontent.com/bitnami/bitnami-docker-neo4j/master/docker-compose.yml &gt; docker-compose.yml$ docker-compose up...

    email2neo4j:使用一个简单的命令将您的电子邮件导入图表

    imap2neo4j: imap2neo4j imapServer imapUsername imapPassword imapMailbox neo4jServer [neo4jUsername] [neo4jPassword] [paging, eg import by batches of 1000] [specific range of messages, eg 50

    neo4j-community-3.5.12-windows.zip

    **Neo4J社区版3.5.12 Windows安装与使用指南** Neo4J是一款流行的图数据库管理系统,尤其适用于处理复杂关系数据。图数据库利用图形结构来存储和查询数据,其核心理念是节点、边(关系)和属性,这使得在处理网络、...

    Sublime-Neo4j:用于运行 Neo4j Cypher 查询的 Sublime 插件

    Sublime Text 2/3 插件:Neo4j Sublime 是最好的跨平台编辑器之一,所以我想为什么不创建一个简单的 Neo4j 插件呢?... 编辑用户名和密码(默认为neo4j:neo) 结果显示在控制台中(Ctrl+~)打开C

    schemaless-graphql-neo4j:将无类型和动态GraphQL查询转换为Cypher

    schemaless-graphql-neo4j 将无类型的动态GraphQL查询转换为Cypher。 签出,以更好地查看您可以编写的查询。入门$ npm install schemaless-graphql-neo4j :warning: 图书馆尚未发布操场您可以开始使用开发人员游乐场...

    netscan-neo4j:网络扫描

    mvn clean package 这将生成一个jar文件target/netscan-1.0.0.jar ,可以将其部署在Neo4j实例的plugin目录中。 正在安装 要使用NetSCAN插件,您只需将jar文件移动到neo4j上的plugins文件夹中。 用法 运行NetSCAN...

    egg-neo4j:Neo4j鸡蛋插件

    egg-neo4j Neo4j用于鸡蛋框架。安装$ npm i egg-neo4j --save用法// {app_root}/config/plugin.jsexports . neo4j = { enable : true , package : 'egg-neo4j' ,} ;配置// {app_root}/config/config.default....

    neo4j:所有人的图表

    【标题】"neo4j:所有人的图表"指的是开源图数据库管理系统Neo4j,它将数据以图形结构的形式存储和处理,便于理解复杂的关系。在信息化时代,数据之间的关联性日益增强,图数据库如Neo4j应运而生,成为理解和分析...

    nodejs-on-neo4j:Neo4j上的NodeJS的简单PoC

    **Node.js on Neo4j: 在图形数据库上构建应用** 标题中的"nodejs-on-neo4j"指的是一项使用Node.js与Neo4j图形数据库交互的实践项目。这个项目通常涉及利用Node.js的灵活性和Neo4j的强大图数据处理能力来开发应用...

    spring-graph-neo4j:Neo4j的春天

    标题中的“spring-graph-neo4j:Neo4j的春天”暗示了我们将探讨Spring框架与图数据库Neo4j的结合使用。在Java开发领域,Spring框架是一个广泛使用的开源框架,它提供了一整套用于构建企业级应用的服务和工具。而Neo4j...

    NBD_Tutorials_Neo4J:PJATK NDB教程的Neo4J分配

    【标题】:“NBD_Tutorials_Neo4J:PJATK NDB教程的Neo4J分配” 【描述】:“NBD_Tutorials_Neo4J”指的是一个关于使用Neo4J数据库进行数据处理和分析的教程,特别关注的是与PJATK(Probabilistic Joint Anomaly ...

    Laravel开发-neo4j-php-ogm

    'Neo4j' =&gt; Neo4j\OGM\Facades\Neo4j::class, ], ``` 5. **配置服务**:在`app/Providers/AppServiceProvider.php`的`boot`方法中加载配置文件和启动Neo4j客户端: ```php public function boot() { $this-&gt;app-&gt;...

    docker-neo4j:运行 Neo4j 容器的镜像

    Neo4j Neo4j 是一个高度可扩展、健壮(完全 ACID)的原生图形数据库。 Neo4j 被全球数以千计的领先企业、初创公司、企业和政府用于任务关键型应用程序。 使用存储库上的 Dockerfile,您就可以使用 docker neo4j ...

Global site tag (gtag.js) - Google Analytics