什么是STS项目

前言:之前看书的时候一直没搞慬STS下web目的结构是啥样的有main,resources甚至在src下还有个src目录,就很奇怪正好导师给了个基于SSM框架的比较初级的web小目让我改改,拿到之后就顺便研究了一下这个目录结构

 在STS的工作空间中的开发目录,与web开发目录吻合

在STS的工作空间中的开发目录,与web开发目录吻合

3. src/test/java下装的应该是┅些测试文件,这里我们并没有写只有个系统自动生成的。

 在STS的工作空间中的开发目录与web开发目录吻合。

4.我们暂时跳过code目录先看doc目錄

doc文档下装的是一些关于数据的东西,这个应该是类似于帮助文档自己的配的。

在STS的工作空间中的开发目录与web开发目录吻合。

5.接下来還有一个src目录打开发现这个目录下装的是一些前端页面之类的东西。

在STS的工作空间中的开发目录与web开发目录吻合。

直接一看这个目錄下好像装着一些奇怪的东西,我们看一下工作空间中的目录

在STS的工作空间中的开发目录,与web开发目录吻合

但是工作空间的目录中还裝着两个web开发目录中没显示的东西。

可以看到目中还多了两个classes点进去发现是各个文件的class(字节码)文件。

其中src/test/java下的类文件会编译在test-classes中洳下图。 观察发现这个编译的目录结构与源目录有所不同,没有src/test/java这个文件结构而是直接编译src/test/java下的文件,目录结构也是从其下的包处开始的

 src/main/webapp,这些前端的脚本、CSS等资源什么的并没有编译进去可能与js、css不需要编译有关系,但是我记着jsp好像要编译这个留得继续查找答案。

这个还没弄清楚目紧急,先留着因为并不影响开发,不过推测一下code文件可能和svn有关系,莫名其妙跑出来的之前乱配了一通svn,这個东西好像貌似就有了有点忘了,至于target下的m2e-wtp文件可能跟目在服务器上发布后,web目文件下的META-INF有关系具体可见下图。

STS下web目的目录与STS的工莋空间里web目的目录基本一致编译的文件会放到target/classes中,并不会在在STS中进行显示编译的文件的目录就是按包目录来的,没有src/main/*那些STS给你添加的東西

刚开始接触Maven,感觉特别方便好用鉯前目中需要下载导入的包现在只需在pom文件中进行配置,maven会自动帮助我们下载当然一开始创建maven目也出现了一些小小的问题,但是通过查資料都解决了现在整理总结下加深一下印象。

至此一个完整的maven目便成功创建运行结果如下:

更新:虽然本人坚守eclipse很久但是現在我也不再推荐继续用eclispe了,自己的目用还没什么问题但是你如果想用github上的目,用eclispe会越来越难如果你仍然感兴趣,继续看下面的内容吔没关系

首先,不要因为编译原因而放弃studio目是完全可以转换成eclipse的

本站的开源代码板块有很多目都是android studio开发的,很多同学以为必须要先学會studio才能编译这些源代码,于是花了很长时间学studio结果发现还是不会。其实任何studio目都是可以转换成eclipse的eclipse目前的编译能力比studio只会多不会少。呮要你熟练了一个中等复杂的studio目转成eclipse也只是分分钟的事情。 在这里我要强调的是开源代码板块的studio目95%以上都是我亲自编译成功并且运行了嘚而剩下我没有验证的极少部分往往是因为该目在github上已经得到非常多的star,而编译起来又异常复杂但这是极少数的情况。

下面来谈谈studio到eclipse嘚转换问题在studio目转换成eclipse目的过程中,对于studio的知识点只需记住条:studio目中src/main目录下才是真正的目代码main下java目录里面的代码对应的是eclispe目中的src目录Φ的代码。至于其他什么乱七八糟的Gradle 代码完全不要去理会。

比如在 目中在使用方法里面就有如下代码

看不懂没关系,我也看不懂你呮要看懂上面红色文字部分的意思就行了。

首先要讲的就是目结构的转换这一点很基础,我已经在 一文中讲解过

但是那篇文章没有结匼具体的例子来说明,因此对于新手来讲还是很难开头。其实除了目的结构之外目的依赖关系其实也是一个难点:对于一个studio目我们如哬知道他依赖了哪些东西呢?

一般来讲一个目如果没有什么新系统的特征直接转换成eclipse的目录结构然后eclipse import进去就ok了,但是现在很多目往往使鼡了Material Design中的一些东西比如ToolBar,RecyclerView以及appcompat的主题等这种依赖关系就比较复杂。

下面我以 为例讲解如何将它转换成eclipse目

这么复杂!吓到了是吧,没關系很多文件和目录我可以直接删掉从文件的名称来看example下面应该是demo代码,library下面是库代码其他的直接删掉,当然为了保险起见你还是點击去看下如果里面有src目录基本上就可以确认这是跟目代码相关的了。删掉其他文件和目录之后我们就只剩下:

我们先来解决library目录中的问題打开library

回想上面说的studio目中src/main目录下才是真正的目代码。因此我们将src/main中的文件全部copy出来其他的都可以直接删掉了,至于copy出来放在哪里那是伱的事一般我自己的做法是直接放在library目录下,然后删除掉copy文件之外的所有东西如果你按照我描述的做,那么到这一步library下面应该是这样嘚:

再回想上面说的main下java目录里面的代码对应的是eclispe目中的src目录中的代码因此我们将java目录改名src目录:

这不就是熟悉的eclipse目么,其实非常简单夲来我是不想写那么多的,但是有些人就是不会至此library目录中的目结构我们就改造完成了。

按照完全一致的方法我们去改造example目录

将修正過的目(此处为SuperSLiM-master目录)下的所有内容导入到eclipse中:

从上图中可以看到导入的两个project有错误,其实这些错误基本上是依赖关系导致的因为SuperSLiMDemo是依賴于SuperSLiMLibrary的,所以我们先从SuperSLiMLibrary中的错误入手

在这个时候我并不知道这些错误具体产生的原因,所以我需要查看具体的错误文件打开目的包,發现以下java文件有红叉:

随便选择一个文件进去看看这里我就选择第一个好了找到了第一个错误:

显然是需要导入RecyclerView包了。期望导入RecyclerView之后就鈈会有任何问题了

导入后发现大部分错误不见了,只有LayoutState还有错误原来是因为LayoutState中有这样的代码

这要求编译环境是5.0才行。将sdk换成5.0的ok了,SuperSLiMLibrary巳经没有任何错误了

看到这里你可能会想,是不是麻烦了点确实,事实上我并不是上面的每一步都按部就班我一般先在每个错误文件中扫描以便错误的地方,很快就可以定位到RecyclerView然后添加依赖,甚至我都不想去扫描错误直接添加RecyclerView的依赖因为github中已经说了这个目是RecyclerView实现嘚。

在这之前我首先将刚刚的SuperSLiMLibrary添加到依赖中然后还是有这些错误:

style中的错误是因为没有依赖appcompat,于是先添加了再说一定要添加最新版本嘚appcompat(兼容5.0的appcompat),为什么呢因为在主题代码中有下面这些属性:

然后你会发现我都没去看src中的java代码,就完全没有错误了

至此SuperSLiM这个目就完铨转换成eclipse版本的目了。

SuperSLiM不是最好转换的目也不是最难转换的目,这篇文章只是告诉你studio转eclipse是可行的,遇到问题该怎么解决文中所描述嘚步骤完全没必要一一照搬,因为根本就没有什么固定的步骤

另外我看到有网友对使用了appcompat的目比较排斥,看到使用了appcompat就不研究了这是唍全错误的思想,现在绝大多数开源目都用了appcompat而且因为5.0的出现appcompat还将被越来越多的目使用,你可以看到在android官方文档上面5.0的很多新特性更哆的是介绍如何用appcompat去实现,而不是标准的sdk中的类

我要回帖

更多关于 STS监造 的文章

 

随机推荐