{"id":3681,"date":"2018-10-13T11:42:52","date_gmt":"2018-10-13T03:42:52","guid":{"rendered":"http:\/\/switch.linesno.com\/?p=3681"},"modified":"2018-10-13T11:42:52","modified_gmt":"2018-10-13T03:42:52","slug":"maven-web-%e9%a1%b9%e7%9b%ae%e4%bd%bf%e7%94%a8proguard%e8%bf%9b%e8%a1%8c%e6%b7%b7%e6%b7%86%ef%bc%8c%e6%9c%80%e4%bd%b3%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88","status":"publish","type":"post","link":"http:\/\/switch.linesno.com\/?p=3681","title":{"rendered":"Maven WEB \u9879\u76ee\u4f7f\u7528ProGuard\u8fdb\u884c\u6df7\u6dc6\uff0c\u6700\u4f73\u89e3\u51b3\u65b9\u6848"},"content":{"rendered":"<p>\u8fd1\u671f\u516c\u53f8\u7684Android\u9879\u76ee\u505a\u4e86\u6df7\u6dc6\uff0c\u867d\u8bf4\u5bf9\u4e8e\u4fdd\u62a4\u4ee3\u7801\u5e76\u4e0d\u662f100%\u7684\uff0c\u4f46\u6df7\u6dc6\u540e\u7684\u4ee3\u7801\u53ef\u4ee5\u4f7f\u90a3\u4e9b\u4e0d\u6cd5\u4efd\u5b50\u96be\u4ee5\u9605\u8bfb\uff0c\u8fd9\u6837\u4e5f\u80fd\u5bf9\u4ee3\u7801\u7684\u4fdd\u62a4\u505a\u51fa\u8d21\u732e\u3002<br \/>\n\u4e8e\u662f\uff0c\u516c\u53f8\u5199\u7684\u4e00\u5927\u5806WEB\u9879\u76ee\u4e5f\u60f3\u505a\u4fdd\u62a4\u3002\u4f46\u51e0\u5927\u95ee\u9898\u968f\u4e4b\u800c\u6765\uff1a<\/p>\n<p>\u516c\u53f8\u7684\u6240\u6709\u9879\u76ee\u5168\u90e8\u662fMaven\u9879\u76ee\uff0c\u7f51\u4e0a\u7684\u6df7\u6dc6\u65b9\u6848\u4e0d\u662f\u9648\u65e7\u5c31\u662f\u65e0\u6548<br \/>\n\u7f51\u4e0a\u7684\u5927\u90e8\u5206\u89e3\u51b3\u65b9\u6848\u611f\u89c9\u50cf\u662f\u5bf9\u7b80\u5355DEMO\u8fdb\u884c\u6df7\u6dc6\uff0c\u6839\u672c\u4e0d\u80fd\u7528\u4e8e\u590d\u6742\u7684WEB\u9879\u76ee\u4e2d<br \/>\n\u7f51\u4e0a\u7684\u5927\u90e8\u5206\u89e3\u51b3\u65b9\u6848\u662f\u9488\u5bf9Android\u9879\u76ee\u7684\uff0c\u9488\u5bf9WEB\u7684\u5c11\u4e4b\u53c8\u5c11<br \/>\n\u9488\u5bf9\u4ee5\u4e0a\u95ee\u9898\uff0c\u672c\u4eba\u82b1\u8d39\u4e00\u4e2a\u6708\u7814\u7a76\u4e86WEB+Maven\u9879\u76ee\u7684\u6df7\u6dc6\uff0c\u7ec8\u4e8e\u6536\u83b7\u679c\u5b9e\uff0c\u89e3\u51b3\u4e86\u8fd9\u4e00\u5927\u7a7a\u7f3a\u96be\u9898\u3002<\/p>\n<p>\u9879\u76ee\u4ecb\u7ecd<br \/>\n\u5c31\u5982\u4e4b\u524d\u6240\u8ff0\uff0c\u6211\u4eec\u8981\u6df7\u6dc6\u7684\u9879\u76ee\u7edd\u4e0d\u662f\u4e00\u4e2a\u7b80\u5355\u7684WEB DEMO\uff0c\u5fc5\u987b\u8981\u5305\u542b\u4e86\u5927\u91cf\u7b2c\u4e09\u65b9\u6846\u67b6\u3002<br \/>\n\u672c\u6587\u4e2d\u4ecb\u7ecd\u7684\u9879\u76ee\u4f7f\u7528\u4e86\u4e3b\u6d41\u7684\u4e00\u4e9b\u6846\u67b6\uff1a<\/p>\n<p>Spring 4.1.1.RELEASE<br \/>\nSpringMVC 4.1.1.RELEASE<br \/>\nJackSon 2.5.0<br \/>\nMyBatis 3.3.0<br \/>\nShiro 1.2.3<br \/>\nLog4J 1.2.17<br \/>\nSLF4J 1.7.10<br \/>\nDruid Pool 1.0.15<br \/>\npatchca 1.0.0<br \/>\nJetty 9.2.7.v20150116<br \/>\n\u9879\u76ee\u5305\u7ed3\u6784<\/p>\n<p>\u8be5\u9879\u76ee\u662f\u5178\u578b\u7684Maven WEB\u9879\u76ee\uff0c\u5bf9\u4e8eMaven WEB\u9879\u76ee\u7684\u7ed3\u6784\u4e0d\u518d\u8d58\u8ff0\uff0c\u8fd9\u91cc\u5bf9\u5404\u79cd\u5305\u505a\u4e00\u4e0b\u89e3\u91ca\uff1a<\/p>\n<p>annotation \u6ce8\u89e3\u5305\uff0c\u91cc\u9762\u662f\u81ea\u5df1\u5199\u7684\u6ce8\u89e3\u7c7b\uff0c\u4e3b\u8981\u6df7\u6dc6\u5bf9\u8c61<br \/>\ncontroller SpringMVC\u7684\u63a7\u5236\u5668\u5305\uff0c\u4e3b\u8981\u6df7\u6dc6\u5bf9\u8c61<br \/>\ncredntials Shiro\u7684\u81ea\u5b9a\u4e49\u51ed\u8bc1\uff0c\u6b21\u8981\u6df7\u6dc6\u5bf9\u8c61<br \/>\ndao DAO\u5305\uff0c\u4e3b\u8981\u6df7\u6dc6\u5bf9\u8c61<br \/>\nexception \u5f02\u5e38\u5305\uff0c\u81ea\u5b9a\u4e49\u4e86\u4e00\u4e9b\u5f02\u5e38\uff0c\u4e3b\u8981\u6df7\u6dc6\u5bf9\u8c61<br \/>\nfilter Shiro\u7684\u81ea\u5b9a\u4e49\u8fc7\u6ee4\u5668\uff0c\u6b21\u8981\u6df7\u6dc6\u5bf9\u8c61<br \/>\ninterceptor Shiro\u7684\u81ea\u5b9a\u4e49\u62e6\u622a\u5668\uff0c\u6b21\u8981\u6df7\u6dc6\u5bf9\u8c61<br \/>\njob SpringTASK\u7684\u5b9a\u65f6\u4efb\u52a1\u5305\uff0c\u6b21\u8981\u6df7\u6dc6\u5bf9\u8c61<br \/>\nmapper Mybatis\u7684XML\u6620\u5c04\u6587\u4ef6\u5305\uff0c\u975e\u6df7\u6dc6\u5bf9\u8c61<br \/>\nmodel \u5b9e\u4f53\u5305\uff0c\u975e\u6df7\u6dc6\u5bf9\u8c61<br \/>\nrealm Shiro\u7684\u81ea\u5b9a\u4e49\u57df\u5305\uff0c\u6b21\u8981\u6df7\u6dc6\u5bf9\u8c61<br \/>\nservice \u5b9e\u4f53\u7684\u670d\u52a1\u5305\uff0c\u6b21\u8981\u6df7\u6dc6\u5bf9\u8c61<br \/>\ntoken Shiro\u7684\u81ea\u5b9a\u4e49\u4ee4\u724c\u5305\uff0c\u6b21\u8981\u6df7\u6dc6\u5bf9\u8c61<br \/>\nutils \u516c\u53f8\u81ea\u5df1\u7684\u5de5\u5177\u7c7b\uff0c\u4e3b\u8981\u6df7\u6dc6\u5bf9\u8c61<br \/>\n\u4e3b\u8981\u6df7\u6dc6\u5bf9\u8c61 \u5bf9\u7c7b\u7684\u540d\u79f0\u3001\u5c5e\u6027\u3001\u65b9\u6cd5\u540d\u90fd\u8fdb\u884c\u6df7\u6dc6<br \/>\n\u6b21\u8981\u6df7\u6dc6\u5bf9\u8c61 \u5bf9\u7c7b\u7684\u540d\u79f0\u4e0d\u6df7\u6dc6\uff0c\u7c7b\u7684\u5c5e\u6027\u3001\u65b9\u6cd5\u540d\u9009\u62e9\u6027\u6df7\u6dc6<br \/>\n\u975e\u6df7\u6dc6\u5bf9\u8c61 \u4e0d\u8fdb\u884c\u6df7\u6dc6\uff0c\u6df7\u6dc6\u540e\u53ef\u80fd\u51fa\u73b0\u5f02\u5e38<\/p>\n<p>Maven \u914d\u7f6e(pom.xml)<br \/>\n\u672c\u6587\u7684\u91cd\u5934\u620f\uff0c\u4f7f\u7528Maven\u96c6\u6210\u7684ProGuard\u63d2\u4ef6\uff0c\u6df7\u6dc6\u914d\u7f6e\u4e0d\u7528\u5355\u72ec\u5efa\u7acb\u6587\u4ef6<\/p>\n<p>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;<br \/>\n&lt;project xmlns=&#8221;http:\/\/maven.apache.org\/POM\/4.0.0&#8243;<br \/>\nxmlns:xsi=&#8221;http:\/\/www.w3.org\/2001\/XMLSchema-instance&#8221;<br \/>\nxsi:schemaLocation=&#8221;http:\/\/maven.apache.org\/POM\/4.0.0 http:\/\/maven.apache.org\/xsd\/maven-4.0.0.xsd&#8221;&gt;<br \/>\n&lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;<br \/>\n&lt;packaging&gt;war&lt;\/packaging&gt;<br \/>\n&lt;groupId&gt;&#8230;&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;zhukun.shiro-spring&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;1.0-SNAPSHOT&lt;\/version&gt;<\/p>\n<p>&lt;!&#8211; \u5c5e\u6027&#8211;&gt;<br \/>\n&lt;properties&gt;<br \/>\n&lt;!&#8211; \u9879\u76ee\u7f16\u7801&#8211;&gt;<br \/>\n&lt;project.build.sourceEncoding&gt;UTF-8&lt;\/project.build.sourceEncoding&gt;<br \/>\n&lt;!&#8211; \u5355\u5143\u6d4b\u8bd5\u5305&#8211;&gt;<br \/>\n&lt;junit.version&gt;4.12&lt;\/junit.version&gt;<br \/>\n&lt;!&#8211; JAVAEE\u652f\u6301\u5305&#8211;&gt;<br \/>\n&lt;jstl.version&gt;1.2&lt;\/jstl.version&gt;<br \/>\n&lt;servlet.version&gt;3.1.0&lt;\/servlet.version&gt;<br \/>\n&lt;!&#8211; \u65e5\u5fd7\u5305&#8211;&gt;<br \/>\n&lt;log4j.version&gt;1.2.17&lt;\/log4j.version&gt;<br \/>\n&lt;slf4j.version&gt;1.7.10&lt;\/slf4j.version&gt;<br \/>\n&lt;aspectj.version&gt;1.6.12&lt;\/aspectj.version&gt;<br \/>\n&lt;!&#8211; commons\u652f\u6301&#8211;&gt;<br \/>\n&lt;commons-logging.version&gt;1.1.3&lt;\/commons-logging.version&gt;<br \/>\n&lt;commons-collections.version&gt;3.2.1&lt;\/commons-collections.version&gt;<br \/>\n&lt;commons-fileupload.version&gt;1.3.1&lt;\/commons-fileupload.version&gt;<br \/>\n&lt;!&#8211; shiro\u5b89\u5168\u6846\u67b6&#8211;&gt;<br \/>\n&lt;shiro.version&gt;1.2.3&lt;\/shiro.version&gt;<br \/>\n&lt;!&#8211; druid\u8fde\u63a5\u6c60&#8211;&gt;<br \/>\n&lt;druid.version&gt;1.0.15&lt;\/druid.version&gt;<br \/>\n&lt;!&#8211; \u6570\u636e\u5e93\u53ca\u6570\u636e\u5e93\u6846\u67b6&#8211;&gt;<br \/>\n&lt;mysql.version&gt;5.1.30&lt;\/mysql.version&gt;<br \/>\n&lt;mybatis.version&gt;3.3.0&lt;\/mybatis.version&gt;<br \/>\n&lt;mybatis-spring.version&gt;1.2.3&lt;\/mybatis-spring.version&gt;<br \/>\n&lt;!&#8211; Mybatis\u5206\u9875\u63d2\u4ef6&#8211;&gt;<br \/>\n&lt;mybatis-paginator.version&gt;1.2.16&lt;\/mybatis-paginator.version&gt;<br \/>\n&lt;!&#8211; Mybatis\u751f\u6210\u5668\u63d2\u4ef6&#8211;&gt;<br \/>\n&lt;mybatis-generator.version&gt;1.3.2&lt;\/mybatis-generator.version&gt;<br \/>\n&lt;!&#8211; Spring\u53caSpringMVC\u652f\u6301\u5305&#8211;&gt;<br \/>\n&lt;spring.version&gt;4.1.1.RELEASE&lt;\/spring.version&gt;<br \/>\n&lt;jackson.version&gt;2.5.0&lt;\/jackson.version&gt;<br \/>\n&lt;!&#8211; \u9a8c\u8bc1\u7801\u652f\u6301\u5305&#8211;&gt;<br \/>\n&lt;patchca.version&gt;1.0.0&lt;\/patchca.version&gt;<br \/>\n&lt;!&#8211; Jetty\u63d2\u4ef6&#8211;&gt;<br \/>\n&lt;jetty.version&gt;9.2.7.v20150116&lt;\/jetty.version&gt;<br \/>\n&lt;!&#8211; Maven\u7f16\u8bd1\u63d2\u4ef6&#8211;&gt;<br \/>\n&lt;maven-compiler.version&gt;2.3.2&lt;\/maven-compiler.version&gt;<br \/>\n&lt;\/properties&gt;<\/p>\n<p>&lt;dependencies&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;junit&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;junit&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${junit.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;javax.servlet&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;jstl&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${jstl.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;log4j&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;log4j&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${log4j.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.aspectj&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;aspectjweaver&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${aspectj.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.slf4j&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;slf4j-log4j12&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${slf4j.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;commons-logging&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;commons-logging&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${commons-logging.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.apache.shiro&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;shiro-core&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${shiro.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.apache.shiro&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;shiro-web&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${shiro.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.apache.shiro&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;shiro-spring&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${shiro.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.apache.shiro&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;shiro-ehcache&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${shiro.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.apache.shiro&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;shiro-quartz&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${shiro.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;commons-collections&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;commons-collections&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${commons-collections.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;mysql&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;mysql-connector-java&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${mysql.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;com.alibaba&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;druid&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${druid.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;javax.servlet&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;javax.servlet-api&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${servlet.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;commons-fileupload&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;commons-fileupload&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${commons-fileupload.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.mybatis&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;mybatis&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${mybatis.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.mybatis&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;mybatis-spring&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${mybatis-spring.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;com.github.miemiedev&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;mybatis-paginator&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${mybatis-paginator.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;com.fasterxml.jackson.core&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;jackson-core&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${jackson.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;com.fasterxml.jackson.core&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;jackson-databind&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${jackson.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;com.fasterxml.jackson.core&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;jackson-annotations&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${jackson.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.springframework&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;spring-core&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${spring.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.springframework&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;spring-webmvc&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${spring.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.springframework&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;spring-context-support&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${spring.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.springframework&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;spring-orm&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${spring.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.springframework&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;spring-test&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${spring.version}&lt;\/version&gt;<br \/>\n&lt;scope&gt;test&lt;\/scope&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;dependency&gt;<br \/>\n&lt;groupId&gt;org.patchca&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;patchca&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${patchca.version}&lt;\/version&gt;<br \/>\n&lt;\/dependency&gt;<br \/>\n&lt;\/dependencies&gt;<\/p>\n<p>&lt;build&gt;<br \/>\n&lt;finalName&gt;shiro-spring&lt;\/finalName&gt;<br \/>\n&lt;!&#8211;\u4f7fMaven\u6253\u5305\u65f6\u80fd\u6253\u5305src\u76ee\u5f55\u4e0b\u7684XML\u6587\u4ef6&#8211;&gt;<br \/>\n&lt;resources&gt;<br \/>\n&lt;resource&gt;<br \/>\n&lt;directory&gt;src\/main\/java&lt;\/directory&gt;<br \/>\n&lt;includes&gt;<br \/>\n&lt;include&gt;**\/*.xml&lt;\/include&gt;<br \/>\n&lt;\/includes&gt;<br \/>\n&lt;\/resource&gt;<br \/>\n&lt;resource&gt;<br \/>\n&lt;directory&gt;src\/main\/resources&lt;\/directory&gt;<br \/>\n&lt;\/resource&gt;<br \/>\n&lt;\/resources&gt;<br \/>\n&lt;plugins&gt;<br \/>\n&lt;plugin&gt;<br \/>\n&lt;groupId&gt;org.apache.maven.plugins&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;maven-compiler-plugin&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${maven-compiler.version}&lt;\/version&gt;<br \/>\n&lt;configuration&gt;<br \/>\n&lt;source&gt;1.7&lt;\/source&gt;<br \/>\n&lt;target&gt;1.7&lt;\/target&gt;<br \/>\n&lt;encoding&gt;UTF-8&lt;\/encoding&gt;<br \/>\n&lt;\/configuration&gt;<br \/>\n&lt;\/plugin&gt;<br \/>\n&lt;plugin&gt;<br \/>\n&lt;groupId&gt;org.eclipse.jetty&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;jetty-maven-plugin&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${jetty.version}&lt;\/version&gt;<br \/>\n&lt;configuration&gt;<br \/>\n&lt;webApp&gt;<br \/>\n&lt;contextPath&gt;\/shiro-spring&lt;\/contextPath&gt;<br \/>\n&lt;\/webApp&gt;<br \/>\n&lt;httpConnector&gt;<br \/>\n&lt;!&#8211; \u8bbe\u7f6e\u7aef\u53e3&#8211;&gt;<br \/>\n&lt;port&gt;8080&lt;\/port&gt;<br \/>\n&lt;\/httpConnector&gt;<br \/>\n&lt;\/configuration&gt;<br \/>\n&lt;\/plugin&gt;<\/p>\n<p>&lt;!&#8211; MyBatis\u81ea\u52a8\u751f\u6210Mapper\u63d2\u4ef6&#8211;&gt;<br \/>\n&lt;plugin&gt;<br \/>\n&lt;groupId&gt;org.mybatis.generator&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;mybatis-generator-maven-plugin&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;${mybatis-generator.version}&lt;\/version&gt;<br \/>\n&lt;configuration&gt;<br \/>\n&lt;verbose&gt;true&lt;\/verbose&gt;<br \/>\n&lt;overwrite&gt;true&lt;\/overwrite&gt;<br \/>\n&lt;\/configuration&gt;<br \/>\n&lt;\/plugin&gt;<\/p>\n<p>&lt;!&#8211; ProGuard\u6df7\u6dc6\u63d2\u4ef6&#8211;&gt;<br \/>\n&lt;plugin&gt;<br \/>\n&lt;groupId&gt;com.github.wvengen&lt;\/groupId&gt;<br \/>\n&lt;artifactId&gt;proguard-maven-plugin&lt;\/artifactId&gt;<br \/>\n&lt;version&gt;2.0.11&lt;\/version&gt;<br \/>\n&lt;executions&gt;<br \/>\n&lt;execution&gt;<br \/>\n&lt;!&#8211; \u6df7\u6dc6\u65f6\u523b\uff0c\u8fd9\u91cc\u662f\u6253\u5305\u7684\u65f6\u5019\u6df7\u6dc6&#8211;&gt;<br \/>\n&lt;phase&gt;package&lt;\/phase&gt;<br \/>\n&lt;goals&gt;<br \/>\n&lt;!&#8211; \u4f7f\u7528\u63d2\u4ef6\u7684\u4ec0\u4e48\u529f\u80fd\uff0c\u5f53\u7136\u662f\u6df7\u6dc6&#8211;&gt;<br \/>\n&lt;goal&gt;proguard&lt;\/goal&gt;<br \/>\n&lt;\/goals&gt;<br \/>\n&lt;\/execution&gt;<br \/>\n&lt;\/executions&gt;<br \/>\n&lt;configuration&gt;<br \/>\n&lt;!&#8211; \u662f\u5426\u5c06\u751f\u6210\u7684PG\u6587\u4ef6\u5b89\u88c5\u90e8\u7f72&#8211;&gt;<br \/>\n&lt;attach&gt;true&lt;\/attach&gt;<br \/>\n&lt;!&#8211; \u662f\u5426\u6df7\u6dc6&#8211;&gt;<br \/>\n&lt;obfuscate&gt;true&lt;\/obfuscate&gt;<br \/>\n&lt;!&#8211; \u6307\u5b9a\u751f\u6210\u6587\u4ef6\u5206\u7c7b &#8211;&gt;<br \/>\n&lt;attachArtifactClassifier&gt;pg&lt;\/attachArtifactClassifier&gt;<br \/>\n&lt;options&gt;<br \/>\n&lt;!&#8211; JDK\u76ee\u6807\u7248\u672c1.7&#8211;&gt;<br \/>\n&lt;option&gt;-target 1.7&lt;\/option&gt;<br \/>\n&lt;!&#8211; \u4e0d\u505a\u6536\u7f29\uff08\u5220\u9664\u6ce8\u91ca\u3001\u672a\u88ab\u5f15\u7528\u4ee3\u7801\uff09&#8211;&gt;<br \/>\n&lt;option&gt;-dontshrink&lt;\/option&gt;<br \/>\n&lt;!&#8211; \u4e0d\u505a\u4f18\u5316\uff08\u53d8\u66f4\u4ee3\u7801\u5b9e\u73b0\u903b\u8f91\uff09&#8211;&gt;<br \/>\n&lt;option&gt;-dontoptimize&lt;\/option&gt;<br \/>\n&lt;!&#8211; \u4e0d\u8def\u8fc7\u975e\u516c\u7528\u7c7b\u6587\u4ef6\u53ca\u6210\u5458&#8211;&gt;<br \/>\n&lt;option&gt;-dontskipnonpubliclibraryclasses&lt;\/option&gt;<br \/>\n&lt;option&gt;-dontskipnonpubliclibraryclassmembers&lt;\/option&gt;<br \/>\n&lt;!&#8211; \u4f18\u5316\u65f6\u5141\u8bb8\u8bbf\u95ee\u5e76\u4fee\u6539\u6709\u4fee\u9970\u7b26\u7684\u7c7b\u548c\u7c7b\u7684\u6210\u5458 &#8211;&gt;<br \/>\n&lt;option&gt;-allowaccessmodification&lt;\/option&gt;<br \/>\n&lt;!&#8211; \u786e\u5b9a\u7edf\u4e00\u7684\u6df7\u6dc6\u7c7b\u7684\u6210\u5458\u540d\u79f0\u6765\u589e\u52a0\u6df7\u6dc6&#8211;&gt;<br \/>\n&lt;option&gt;-useuniqueclassmembernames&lt;\/option&gt;<br \/>\n&lt;!&#8211; \u4e0d\u6df7\u6dc6\u6240\u6709\u5305\u540d\uff0c\u672c\u4eba\u6d4b\u8bd5\u6df7\u6dc6\u540eWEB\u9879\u76ee\u95ee\u9898\u5b9e\u5728\u592a\u591a\uff0c\u6bd5\u7adfSpring\u914d\u7f6e\u4e2d\u6709\u5927\u91cf\u56fa\u5b9a\u5199\u6cd5\u7684\u5305\u540d&#8211;&gt;<br \/>\n&lt;option&gt;-keeppackagenames&lt;\/option&gt;<br \/>\n&lt;!&#8211; \u4e0d\u6df7\u6dc6\u6240\u6709\u7279\u6b8a\u7684\u7c7b&#8211;&gt;<br \/>\n&lt;option&gt;-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod&lt;\/option&gt;<br \/>\n&lt;!&#8211; \u4e0d\u6df7\u6dc6\u6240\u6709\u7684set\/get\u65b9\u6cd5\uff0c\u6bd5\u7adf\u9879\u76ee\u4e2d\u4f7f\u7528\u7684\u90e8\u5206\u7b2c\u4e09\u65b9\u6846\u67b6\uff08\u4f8b\u5982Shiro\uff09\u4f1a\u7528\u5230\u5927\u91cf\u7684set\/get\u6620\u5c04&#8211;&gt;<br \/>\n&lt;option&gt;-keepclassmembers public class * {void set*(***);*** get*();}&lt;\/option&gt;<\/p>\n<p>&lt;!&#8211; \u4e0d\u6df7\u6dc6job\u5305\u4e0b\u7684\u6240\u6709\u7c7b\u540d\uff0c\u4e14\u7c7b\u4e2d\u7684\u65b9\u6cd5\u4e5f\u4e0d\u6df7\u6dc6&#8211;&gt;<br \/>\n&lt;option&gt;-keep class com.chinatelecom.gz.wy.zhukun.shiro_spring.job.** { &amp;lt;methods&amp;gt;; }&lt;\/option&gt;<br \/>\n&lt;!&#8211; \u4e0d\u6df7\u6dc6filter\u5305\u4e0b\u7684\u6240\u6709\u7c7b\u540d\uff0c\u8fd9\u91cc\u4e3b\u8981\u662f\u5bf9Shiro\u7684\u8def\u8e22\u4eba\u8fc7\u6ee4\u5668\u6df7\u6dc6\uff0c\u5bf9\u7c7b\u7684\u5c5e\u6027\u548c\u65b9\u6cd5\u8fdb\u884c\u4e86\u6df7\u6dc6&#8211;&gt;<br \/>\n&lt;option&gt;-keep class com.chinatelecom.gz.wy.zhukun.shiro_spring.filter.** &lt;\/option&gt;<br \/>\n&lt;!&#8211; \u4e0d\u6df7\u6dc6\u51ed\u8bc1\u5305\u4e0b\u7684\u6240\u6709\u7c7b\u540d\uff0c\u4f46\u5bf9\u7c7b\u4e2d\u7684\u5c5e\u6027\u3001\u65b9\u6cd5\u8fdb\u884c\u6df7\u6dc6\uff0c\u539f\u56e0\u662fSpring\u914d\u7f6e\u4e2d\u7528\u5230\u4e86\u8fd9\u4e2a\u7c7b\u540d&#8211;&gt;<br \/>\n&lt;option&gt;-keep class com.chinatelecom.gz.wy.zhukun.shiro_spring.credntials.** &lt;\/option&gt;<br \/>\n&lt;!&#8211; \u6df7\u6dc6\u76ee\u7684\u540c\u4e0a\uff0c\u8fd9\u4e2a\u662f\u62e6\u622a\u5668\u7684\u5305\uff0c\u5305\u4e2d\u6709\u9632\u6b62\u91cd\u590d\u63d0\u4ea4\u7684\u62e6\u622a\u5668&#8211;&gt;<br \/>\n&lt;option&gt;-keep class com.chinatelecom.gz.wy.zhukun.shiro_spring.interceptor.** &lt;\/option&gt;<br \/>\n&lt;!&#8211; \u6df7\u6dc6\u76ee\u7684\u540c\u4e0a\uff0c\u8fd9\u4e2a\u662f\u57df\u5305\uff0c\u5305\u4e2d\u6709\u7528\u6237\u767b\u5f55\u57df&#8211;&gt;<br \/>\n&lt;option&gt;-keep class com.chinatelecom.gz.wy.zhukun.shiro_spring.realm.** &lt;\/option&gt;<br \/>\n&lt;!&#8211; \u4e0d\u6df7\u6dc6model\u5305\u4e2d\u7684\u6240\u6709\u7c7b\u4ee5\u53ca\u7c7b\u7684\u5c5e\u6027\u53ca\u65b9\u6cd5\uff0c\u5b9e\u4f53\u5305\uff0c\u6df7\u6dc6\u4e86\u4f1a\u5bfc\u81f4ORM\u6846\u67b6\u53ca\u524d\u7aef\u65e0\u6cd5\u8bc6\u522b&#8211;&gt;<br \/>\n&lt;option&gt;-keep class com.chinatelecom.gz.wy.zhukun.shiro_spring.model.** {*;}&lt;\/option&gt;<br \/>\n&lt;!&#8211; \u4ee5\u4e0b\u4e24\u4e2a\u5305\u56e0\u4e3a\u5927\u90e8\u5206\u662fSpring\u7ba1\u7406\u7684Bean\uff0c\u4e0d\u5bf9\u5305\u7c7b\u7684\u7c7b\u540d\u8fdb\u884c\u6df7\u6dc6\uff0c\u4f46\u5bf9\u7c7b\u4e2d\u7684\u5c5e\u6027\u548c\u65b9\u6cd5\u6df7\u6dc6&#8211;&gt;<br \/>\n&lt;option&gt;-keep class com.chinatelecom.gz.wy.zhukun.shiro_spring.service.** &lt;\/option&gt;<br \/>\n&lt;option&gt;-keep class com.chinatelecom.gz.wy.zhukun.shiro_spring.dao.**&lt;\/option&gt;<br \/>\n&lt;\/options&gt;<br \/>\n&lt;outjar&gt;${project.build.finalName}-pg.jar&lt;\/outjar&gt;<br \/>\n&lt;!&#8211; \u6dfb\u52a0\u4f9d\u8d56\uff0c\u8fd9\u91cc\u4f60\u53ef\u4ee5\u6309\u4f60\u7684\u9700\u8981\u4fee\u6539\uff0c\u8fd9\u91cc\u6d4b\u8bd5\u53ea\u9700\u8981\u4e00\u4e2aJRE\u7684Runtime\u5305\u5c31\u884c\u4e86 &#8211;&gt;<br \/>\n&lt;libs&gt;<br \/>\n&lt;lib&gt;${java.home}\/lib\/rt.jar&lt;\/lib&gt;<br \/>\n&lt;\/libs&gt;<br \/>\n&lt;!&#8211; \u52a0\u8f7d\u6587\u4ef6\u7684\u8fc7\u6ee4\u5668\uff0c\u5c31\u662f\u4f60\u7684\u5de5\u7a0b\u76ee\u5f55\u4e86&#8211;&gt;<br \/>\n&lt;inFilter&gt;com\/chinatelecom\/gz\/wy\/zhukun\/shiro_spring\/**&lt;\/inFilter&gt;<br \/>\n&lt;!&#8211; \u5bf9\u4ec0\u4e48\u4e1c\u897f\u8fdb\u884c\u52a0\u8f7d\uff0c\u8fd9\u91cc\u4ec5\u6709classes\u6210\u529f\uff0c\u6bd5\u7adf\u4f60\u4e5f\u4e0d\u53ef\u80fd\u5bf9\u914d\u7f6e\u6587\u4ef6\u53caJSP\u6df7\u6dc6\u5427&#8211;&gt;<br \/>\n&lt;injar&gt;classes&lt;\/injar&gt;<br \/>\n&lt;!&#8211; \u8f93\u51fa\u76ee\u5f55&#8211;&gt;<br \/>\n&lt;outputDirectory&gt;${project.build.directory}&lt;\/outputDirectory&gt;<br \/>\n&lt;\/configuration&gt;<br \/>\n&lt;\/plugin&gt;<br \/>\n&lt;\/plugins&gt;<br \/>\n&lt;\/build&gt;<br \/>\n&lt;\/project&gt;<\/p>\n<p>\u4ee5\u4e0a\u4ee3\u7801\u4e2d\u7684\u6ce8\u91ca\u8db3\u591f\u5404\u4f4d\u53c2\u8003\u4e86\uff0c\u82e5\u6709\u95ee\u9898\u6b22\u8fce\u7559\u8a00<\/p>\n<p>\u6267\u884c<br \/>\nclean package -DskipTests<\/p>\n<p>\u4f7f\u7528Maven\u8fd0\u884c\u4ee5\u4e0a\u4ee3\u7801\uff0c\u6267\u884c\u5b8c\u6210\u540e\u5728target\u76ee\u5f55\u4e2d\u4f1a\u751f\u6210\u4e09\u4e2a\u6587\u4ef6\uff1a<\/p>\n<p>classes-pg.jar \u6df7\u6dc6\u540e\u7684classes\u6587\u4ef6\uff0c\u91cc\u9762\u5305\u542b\u5b8c\u6574\u7684\u9879\u76ee\u7ed3\u6784<br \/>\nproguard_map.txt \u6df7\u6dc6\u5185\u5bb9\u7684\u6620\u5c04<br \/>\nproguard_seed.txt \u53c2\u4e0e\u6df7\u6dc6\u7684\u7c7b<br \/>\n\u6df7\u6dc6\u5b8c\u6210\u540e\uff0c\u5c06classes-pg.jar\u89e3\u538b\u5230\u5e94\u7528\u670d\u52a1\u5668\u8986\u76d6\u539f\u6709\u7684classes\u6587\u4ef6\uff0c\u901a\u5e38\u76ee\u5f55\u4e3a<\/p>\n<p>X:\\jetty9\u6216tomcat7\\webapps\\shiro-spring\\WEB-INF\\classes<\/p>\n<p>\u8fd0\u884c\u670d\u52a1\uff0c\u9879\u76ee\u8fd0\u884c\u6b63\u5e38<\/p>\n<p>\u53cd\u7f16\u8bd1<br \/>\n\u65e2\u7136\u662f\u6df7\u6dc6\u4e86\u7684\u4ee3\u7801\uff0c\u90a3\u6211\u4eec\u73b0\u5728\u4f5c\u4e3a\u76d7\u7801\u8005\u6765\u53cd\u7f16\u8bd1\u4e00\u4e0bclasses\u6587\u4ef6<\/p>\n<p>\u53ef\u4ee5\u770b\u51fa\uff0c\u6df7\u6dc6\u6210\u529f\u4e86\uff0c\u76d7\u7801\u8005\u8bfb\u8d77\u6765\u4e0d\u662f\u4e00\u4e8c\u822c\u7684\u75db\u82e6\uff0c\u6211\u4eec\u7684\u76ee\u7684\u5df2\u7ecf\u8fbe\u5230<\/p>\n<p>\u9057\u7559\u95ee\u9898<br \/>\n\u867d\u7136\u6df7\u6dc6\u662f\u5728Maven\u6253\u5305\u7684\u65f6\u5019\u8fdb\u884c\uff0c\u4f46\u662f\u751f\u6210\u7684war\u5305\u53caclasses\u76ee\u5f55\u5e76\u672a\u6df7\u6dc6\uff0c\u8fd8\u9700\u8981\u5c06jar\u5305\u4e2d\u7684\u5185\u5bb9\u63d0\u53d6\uff0c\u6bd4\u8f83\u9ebb\u70e6\uff0c\u4e0d\u77e5\u9053\u6709\u6ca1\u6709\u8ba9\u751f\u6210\u7684war\u5305\u5c31\u662f\u5df2\u7ecf\u6df7\u6dc6\u7684\u529e\u6cd5\u3002<br \/>\n\u672c\u4eba\u7684JAVA\u73af\u5883\u662fJDK1.7 64\u4f4d\uff0c\u5176\u5b83\u7684JDK\u5e76\u672a\u5c1d\u8bd5<br \/>\n\u4e0d\u80fd\u5bf9Spring\u7b49\u914d\u7f6e\u6587\u4ef6\u6df7\u6dc6\uff0c\u8fd9\u6837\u5305\u7ed3\u6784\u8fd8\u662f\u5b58\u5728\uff0c\u51cf\u5f31\u4e86\u76d7\u7801\u8005\u7684\u8bfb\u7801\u96be\u5ea6<\/p>\n<p><audio style=\"display: none;\" controls=\"controls\"><\/audio><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd1\u671f\u516c\u53f8\u7684Android\u9879\u76ee\u505a\u4e86\u6df7\u6dc6\uff0c\u867d\u8bf4\u5bf9\u4e8e\u4fdd\u62a4\u4ee3\u7801\u5e76\u4e0d\u662f100%\u7684\uff0c\u4f46\u6df7\u6dc6\u540e\u7684\u4ee3\u7801\u53ef\u4ee5\u4f7f\u90a3\u4e9b\u4e0d\u6cd5\u4efd\u5b50\u96be\u4ee5\u9605 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,7],"tags":[],"class_list":["post-3681","post","type-post","status-publish","format-standard","hentry","category-javaee","category-day"],"_links":{"self":[{"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/posts\/3681","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3681"}],"version-history":[{"count":1,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/posts\/3681\/revisions"}],"predecessor-version":[{"id":3682,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=\/wp\/v2\/posts\/3681\/revisions\/3682"}],"wp:attachment":[{"href":"http:\/\/switch.linesno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3681"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3681"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/switch.linesno.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3681"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}