ethernetmanager需要哪一个jar包

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ethernetmanager需要哪一个jar包相关的知识,希望对你有一定的参考价值。

参考技术A import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class test

public static void main(String[] args) throws IOException

System.out.print("输入圆盘的个数:");
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str=br.readLine();
int m=Integer.parseInt(str);
System.out.println("移动步骤:");
hanoi(m,'A','B','C');
本回答被提问者和网友采纳
参考技术B srping-core/srping

Maven使用详解

什么是Maven?

如今我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他Jar包,缺少任何一个Jar包都会导致项目编译失败。
以往开发项目时,程序员往往需要花较多的精力在引用Jar包搭建项目环境上,而这一项工作尤为艰难,少一个Jar包、多一个Jar包往往会报一些让人摸不着头脑的异常。
而Maven就是一款帮助程序员构建项目的工具,我们只需要告诉Maven需要哪些Jar 包,它会帮助我们下载所有的Jar,极大提升开发效率。

Maven规定的目录结构

若要使用Maven,那么项目的目录结构必须符合Maven的规范,其目录结构如下:
title

Maven基本命令

  1. 创建Maven的普通java项目: mvn archetype:create -DgroupId=packageName -DartifactId=projectName
  2. 创建Maven的Web项目: mvn archetype:create -DgroupId=packageName -DartifactId=webappName -DarchetypeArtifactId=maven-archetype-webapp
  3. 编译源代码:mvn compile 
  4. 编译测试代码:mvn test-compile     
  5. 运行测试:mvn test    
  6. 产生site:mvn site    
  7. 打包:mvn package   
  8. 在本地Repository中安装jar:mvn install  
  9. 清除产生的项目:mvn clean   
  10. 生成eclipse项目:mvn eclipse:eclipse 
  11. 生成idea项目:mvn idea:idea
  12. 组合使用goal命令,如只打包不测试:mvn -Dtest package
  13. 编译测试的内容:mvn test-compile 
  14. 只打jar包: mvn jar:jar
  15. 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile  ( -skipping 的灵活运用,当然也可以用于其他组合命令)  
  16. 清除eclipse的一些系统设置:mvn eclipse:clean

什么是Maven仓库?

Maven仓库用来存放Maven管理的所有Jar包。分为:本地仓库 和 中央仓库。

  • 本地仓库
    Maven本地的Jar包仓库。
  • 中央仓库
    Maven官方提供的远程仓库。

当项目编译时,Maven首先从本地仓库中寻找项目所需的Jar包,若本地仓库没有,再到Maven的中央仓库下载所需Jar包。

什么是“坐标”?

在Maven中,坐标是Jar包的唯一标识,Maven通过坐标在仓库中找到项目所需的Jar包。
如下代码中,groupId和artifactId构成了一个Jar包的坐标。

1 <dependency>
2     <groupId>ch.qos.logback</groupId>
3     <artifactId>logback-classic</artifactId>
4     <version>1.1.1</version>
5 </dependency>
View Code
  • groupId:所需Jar包的项目名
  • artifactId:所需Jar包的模块名
  • version:所需Jar包的版本号

传递依赖 与 排除依赖

  • 传递依赖:如果我们的项目引用了一个Jar包,而该Jar包又引用了其他Jar包,那么在默认情况下项目编译时,Maven会把直接引用和简洁引用的Jar包都下载到本地。
  • 排除依赖:如果我们只想下载直接引用的Jar包,那么需要在pom.xml中做如下配置:(将需要排除的Jar包的坐标写在中)
1 <exclusions>
2     <exclusion>
3         <groupId>ch.qos.logback</groupId>
4         <artifactId>logback-classic</artifactId>
5     </exclusion>
6 </exclusions>
View Code

依赖冲突

若项目中多个Jar同时引用了相同的Jar时,会产生依赖冲突,但Maven采用了两种避免冲突的策略,因此在Maven中是不存在依赖冲突的。

  • 短路优先
    本项目——>A.jar——>B.jar——>X.jar
    本项目——>C.jar——>X.jar

    若本项目引用了A.jar,A.jar又引用了B.jar,B.jar又引用了X.jar,并且C.jar也引用了X.jar。
    在此时,Maven只会引用引用路径最短的Jar。

  • 声明优先
    若引用路径长度相同时,在pom.xml中谁先被声明,就使用谁。

聚合

  1. 什么是聚合?
    将多个项目同时运行就称为聚合。

  2. 如何实现聚合?
    只需在pom中作如下配置即可实现聚合:

1     <modules>
2         <module>../模块1</module>
3         <module>../模块2</module>
4         <module>../模块3</module>
5     </modules>
View Code

继承

  1. 什么是继承?
    在聚合多个项目时,如果这些被聚合的项目中需要引入相同的Jar,那么可以将这些Jar写入父pom中,各个子项目继承该pom即可。

  2. 如何实现继承?

    • 父pom配置:将需要继承的Jar包的坐标放入标签即可。
1     <dependencyManagement>
2         <dependencies>
3             <dependency>
4                 <groupId>org.apache.shiro</groupId>
5                 <artifactId>shiro-spring</artifactId>
6                 <version>1.2.2</version>
7             </dependency> 
8         </dependencies>
9     </dependencyManagement>
View Code
  • 子pom配置:
1 <parent>
2     <groupId>父pom所在项目的groupId</groupId>
3     <artifactId>父pom所在项目的artifactId</artifactId>
4     <version>父pom所在项目的版本号</version>
5 </parent>
View Code

使用Maven构建Web项目

  1. New Maven项目:选择WebApp:
    title

  2. 若使用JSP,需添加Servlet依赖:
    注:Servlet依赖只在编译和测试时使用!

1 <dependency>
2     <groupId>javax.servlet</groupId>
3     <artifactId>javax.servlet-api</artifactId>
4     <version>3.0.1</version>
5     <!-- 只在编译和测试时运行 -->
6     <scope>provided</scope>
7 </dependency>
View Code
  1. 在Bulid Path中设置resource输出目录:
    title

  2. 勾选:Dynamic Web Module
    title

  3. 删掉测试目录
    title

  4. 在pom中加入jetty的插件,并设置JDK版本:

 1     <plugins>
 2         <plugin>
 3             <groupId>org.apache.maven.plugins</groupId>
 4             <artifactId>maven-compiler-plugin</artifactId>
 5             <configuration>
 6                 <source>1.8</source>
 7                 <target>1.8</target>
 8             </configuration>
 9         </plugin>
10 
11         <plugin>
12             <groupId>org.eclipse.jetty</groupId>
13             <artifactId>jetty-maven-plugin</artifactId>
14             <version>9.3.10.v20160621</version>
15             <executions>
16                 <execution>
17                     <phase>package</phase>
18                 </execution>
19             </executions>
20         </plugin>
21     </plugins>
View Code
  1. 运行项目:
    title

  2. 输入:jetty:run
    title

  3. 访问127.0.0.1:8080
    若出现如下界面,表示成功!
    title

pom.xml详解

pom.xml是Maven的核心,你的项目需要什么Jar包就在pom.xml里面配置。当编译项目时Maven读取该文件,并从仓库中下载相应的Jar包。

  1 <project xmlns="http://maven.apache.org/POM/4.0.0"     
  2     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     
  3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">     
  4     <!--父项目的坐标。如果项目中没有规定某个元素的值,那么父项目中的对应值即为项目的默认值。 坐标包括group ID,artifact ID和 version。-->    
  5     <parent>    
  6      <!--被继承的父项目的构件标识符-->    
  7      <artifactId/>    
  8      <!--被继承的父项目的全球唯一标识符-->    
  9      <groupId/>    
 10      <!--被继承的父项目的版本-->    
 11      <version/>    
 12      <!-- 父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项 目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。-->    
 13      <relativePath/>    
 14  </parent>    
 15  <!--声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。-->       
 16     <modelVersion>4.0.0</modelVersion>     
 17     <!--项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成, 如com.mycompany.app生成的相对路径为:/com/mycompany/app-->     
 18     <groupId>cn.erhuowang</groupId>     
 19     <!-- 构件的标识符,它和group ID一起唯一标识一个构件。换句话说,你不能有两个不同的项目拥有同样的artifact ID和groupID;在某个 特定的group ID下,artifact ID也必须是唯一的。构件是项目产生的或使用的一个东西,Maven为项目产生的构件包括:JARs,源 码,二进制发布和WARs等。-->     
 20     <artifactId>erhuowang-maven2</artifactId>     
 21     <!--项目产生的构件类型,例如jar、war、ear、pom。插件可以创建他们自己的构件类型,所以前面列的不是全部构件类型-->     
 22     <packaging>war</packaging>     
 23     <!--项目当前版本,格式为:主版本.次版本.增量版本-限定版本号-->     
 24     <version>1.0-SNAPSHOT</version>     
 25     <!--项目的名称, Maven产生的文档用-->     
 26     <name>erhuo-maven</name>     
 27     <!--项目主页的URL, Maven产生的文档用-->     
 28     <url>http://erhuowang.cn</url>     
 29     <!-- 项目的详细描述, Maven 产生的文档用。  当这个元素能够用HTML格式描述时(例如,CDATA中的文本会被解析器忽略,就可以包含HTML标 签), 不鼓励使用纯文本描述。如果你需要修改产生的web站点的索引页面,你应该修改你自己的索引页文件,而不是调整这里的文档。-->     
 30     <description>A maven project to study maven.</description>     
 31     <!--描述了这个项目构建环境中的前提条件。-->    
 32  <prerequisites>    
 33   <!--构建该项目或使用该插件所需要的Maven的最低版本-->    
 34     <maven/>    
 35  </prerequisites>    
 36  <!--项目名称和URL-->     
 37     <issueManagement>    
 38      <!--项目名字,-->     
 39         <system>erhuowang</system>     
 40         <!--该项目使用的URL-->    
 41         <url>http://erhuowang.cn</url>     
 42     </issueManagement>     
 43     <!--项目持续集成信息-->    
 44  <ciManagement>    
 45   <!--持续集成系统的名字,例如continuum-->    
 46   <system/>    
 47   <!--该项目使用的持续集成系统的URL(如果持续集成系统有web接口的话)。-->    
 48   <url/>    
 49   <!--构建完成时,需要通知的开发者/用户的配置项。包括被通知者信息和通知条件(错误,失败,成功,警告)-->    
 50   <notifiers>    
 51    <!--配置一种方式,当构建中断时,以该方式通知用户/开发者-->    
 52    <notifier>    
 53     <!--传送通知的途径-->    
 54     <type/>    
 55     <!--发生错误时是否通知-->    
 56     <sendOnError/>    
 57     <!--构建失败时是否通知-->    
 58     <sendOnFailure/>    
 59     <!--构建成功时是否通知-->    
 60     <sendOnSuccess/>    
 61     <!--发生警告时是否通知-->    
 62     <sendOnWarning/>    
 63     <!--不赞成使用。通知发送到哪里-->    
 64     <address/>    
 65     <!--扩展配置项-->    
 66     <configuration/>    
 67    </notifier>    
 68   </notifiers>    
 69  </ciManagement>    
 70  <!--项目创建年份,4位数字。当产生版权信息时需要使用这个值。-->    
 71     <inceptionYear/>    
 72     <!--项目相关邮件列表信息-->     
 73     <mailingLists>    
 74      <!--该元素描述了项目相关的所有邮件列表。自动产生的网站引用这些信息。-->     
 75         <mailingList>     
 76          <!--邮件的名称-->    
 77             <name>Demo</name>     
 78             <!--发送邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建-->     
 79             <post>chaibozhou@163.com</post>     
 80             <!--订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建-->     
 81             <subscribe>chaibozhou@163.com</subscribe>     
 82             <!--取消订阅邮件的地址或链接,如果是邮件地址,创建文档时,mailto: 链接会被自动创建-->     
 83             <unsubscribe>chaibozhou@163.com</unsubscribe>     
 84             <!--你可以浏览邮件信息的URL-->    
 85             <archive>chaibozhou@163.com</archive>     
 86         </mailingList>     
 87     </mailingLists>     
 88     <!--项目开发者列表-->     
 89     <developers>     
 90      <!--某个项目开发者的信息-->    
 91         <developer>     
 92          <!--SCM里项目开发者的唯一标识符-->    
 93             <id>HELLO WORLD</id>     
 94             <!--项目开发者的全名-->    
 95             <name>chaimm</name>     
 96             <!--项目开发者的email-->    
 97             <email>chaibozhou@163.com</email>     
 98             <!--项目开发者的主页的URL-->    
 99             <url/>    
100             <!--项目开发者在项目中扮演的角色,角色元素描述了各种角色-->    
101             <roles>     
102                 <role>Project Manager</role>     
103                 <role>Architect</role>     
104             </roles>    
105             <!--项目开发者所属组织-->    
106             <organization>demo</organization>     
107             <!--项目开发者所属组织的URL-->    
108             <organizationUrl>http://erhuowang.cn</organizationUrl>     
109             <!--项目开发者属性,如即时消息如何处理等-->    
110             <properties>     
111                 <dept>No</dept>     
112             </properties>    
113             <!--项目开发者所在时区, -11到12范围内的整数。-->    
114             <timezone>-5</timezone>     
115         </developer>     
116     </developers>     
117     <!--项目的其他贡献者列表-->     
118     <contributors>    
119      <!--项目的其他贡献者。参见developers/developer元素-->    
120      <contributor>    
121    <name/><email/><url/><organization/><organizationUrl/><roles/><timezone/><properties/>    
122      </contributor>         
123     </contributors>       
124     <!--该元素描述了项目所有License列表。 应该只列出该项目的license列表,不要列出依赖项目的 license列表。如果列出多个license,用户可以选择它们中的一个而不是接受所有license。-->     
125     <licenses>    
126      <!--描述了项目的license,用于生成项目的web站点的license页面,其他一些报表和validation也会用到该元素。spring3中需要的所有jar包从哪里弄

使用poi包读写excel需要导入哪几个jar包

在哪下载Ognl的jar包

mysql5.1驱动jar包去哪下载?

获取jar包版本信息的简单方法

eclipse找不到javax.servlet这个包,我下载了个j2ee.jar,应该放到哪才能用?