我应该在我的android项目中使用natty-master。但是我不能导入它。没有maven我怎么使用natty ?我找到这些代码,我添加了罐子,但它不起作用。
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.joestelmach.natty.*;
public class natty {
public static void main(String[] args) {
Parser parser = new Parser();
List<DateGroup> groups = parser.parse("the day before next thursday");
for(DateGroup group:groups) {
Date dates = group.getDates().get(0);
int line = group.getLine();
int column = group.getPosition();
String matchingValue = group.getText();
String syntaxTree = group.getSyntaxTree().toStringTree();
Map parseMap = group.getParseLocations();
boolean isRecurreing = group.isRecurring();
Date recursUntil = group.getRecursUntil();
}
}
}
我帮你调查了一下。
我假设您使用的是带有当前版本ADT插件的Eclipse。首先,让我们确保您正确地添加了jar:
- 你必须在根目录下创建一个名为
libs
的文件夹项目(与src
、res
等并列) - 将第三方jar文件拷贝到
libs
. - 右键单击项目并执行刷新,ADT将发现库并将其添加为Android依赖项。
现在来看库。Maven列出的natty-07.jar
的所有依赖项如下:
antlr-2.7.7.jar
antlr-runtime-3.2.jar
backport-util-concurrent-3.1.jar
commons-codec-1.5.jar
commons-lang-2.6.jar
commons-logging-1.1.1.jar
ical4j-1.0.2.jar
stringtemplate-3.2.jar
是的,这是2.3 MB的依赖,你必须复制到libs
。
我不认为它们在运行时都是必要的,但是我没有办法分辨哪些是关键的。
使用ProGuard可能会让其中一些人瘦下来,但那是另一回事。
我创建了minSdkVersion="8"和targetSdkVersion="17"的快速脏应用程序。然后将您提供的示例代码放入Activity并根据输入:"the day before next thursday"
运行它。结果我得到了日期为[Wed May 22 16:52:49 GMT 2013]
的单组,这是可以的,因为今天是5月17日星期五。
编辑2013-06-02
基本代码:
http://pastebin.com/XrF5k10M
完整的解决方案:
https://www.dropbox.com/sh/qk2cs51twrpobuz/YaFZWiG5jP/StackOverflow/16610375/NattyApp.zip