Cactus Obfuscator Obfuscator JavaScript / CSS

こんにちは、ユーザー名、

今日は、友人のニコライ・バビンスキー-Cactus Obfuscatorが書いたユーティリティをコミュニティに紹介したいと思います。

Cactus Obfuscatorは、JavaScriptおよびCSSコードを難読化するように設計された3モジュールのアプリケーションです。



Cactus Obfuscatorは以下を使用します。

Apache Mavenは、Mavenバージョン2-3のプラグインです。

YUI Compressor -js / cssの難読化。

単純なXML -XMLマッピングおよび(de)シリアル化。



内容:

1. Mavenプラグインとして使用します。

2.コンソールアプリケーションとして使用します。

3.構成ファイルの作成(XML)。



Cactusは、JavaプロジェクトのMavenプラグインとして、およびコンソールユーティリティとして使用できます。





Mavenプラグインとして使用します。

Mavenプラグインを使用するには、Mavenバージョン2または3をインストールする必要があることは明らかです Mavenバージョン3のcactus-plugin.jarはダウンロード用に提供されています。バージョン2の* .jarを取得するには、そのバージョンのソースからそれを収集するSMS必要なもの)



1.ソースからCactusをビルドするには、以下を実行する必要があります。

-ダウンロードして、ダウンロードしたディレクトリに移動します。

git clone git@github.com:nbabinski/Cactus.git cd Cactus
      
      





-インストール:

  mvn install
      
      







2.コンパイルされたcactus-plugin.jarパッケージをインストールします。



ターミナルを開き、次のように書きます:

 mvn install:install-file -Dfile=DOWNLOAD_FOLDER/cactus-plugin.jar -DgroupId=com.cactus -DartifactId=cactus-plugin -Dpackaging=maven-plugin -Dversion=0.1
      
      



cactus-plugin.jarへの「DOWNLOAD_FOLDER」パスはどこですか



インストールが成功した場合、およそ次の図が表示されます。

[INFO] BUILD SUCCESS

[INFO] ------------------------------------------------------------------------

[INFO] Total time: 0.702s

[INFO] Finished at: Tue Apr 19 01:36:31 EEST 2011

[INFO] Final Memory: 2M/48M






おめでとうございます、Cactusは正常にインストールされました。 プロジェクトのpom.xmlを構成します:

 <build> <plugins> ... <plugin> <groupId>com.cactus</groupId> <artifactId>cactus-plugin</artifactId> <version>0.1</version> <configuration> <jsBaseDirectory>src/main/webapp/js</jsBaseDirectory> <outputDirectory>cache</outputDirectory> </configuration> <executions> <execution> <goals> <goal>obfuscate</goal> </goals> </execution> </executions> </plugin> ... </plugins> </build>
      
      





どこで:

baseDirectory- (オプションの)プロジェクトディレクトリ。 デフォルトは$ {project.basedir}です。

jsBaseDirectory- (必須)baseDirectoryからJavaScript / CSSコードがあるディレクトリへの相対パス。

confingDirectory- (オプション)cactus.xml構成ファイルがあるフォルダーへのパス。デフォルトではjsBaseDirectoryと同じです。

outputDirectory- (オプション)jsBaseDirectoryから処理/難読化されたファイルがあるディレクトリへの相対パス。 ディレクトリが存在する必要があります。

mode- (オプション)2つの動作モード-PRODUCTION / DEBUGがあります。 デフォルトでは、モードはPRODUCTIONに設定されています。つまり、ファイルは接着され難読化されます。 DEBUGモード-ファイルは接着されているだけで、難読化されていません。



pom.xmlで接続した後、 mvnパッケージを試してプロジェクトをビルドできます。 また、Cactusプラグインはプロジェクトなしで使用できます。必要なのは、cactus.xmlファイルの存在だけです。 cactus.xmlを含むフォルダーに移動したら、コンソールに入力するだけです:

mvn com.cactus:cactus-plugin:obfuscate







コンソールアプリケーションとして使用します。

Cactusは、コンソールからMavenなしで使用できます。 必要なのは、マシンにインストールされたJVMだけです。

使用方法:

1. cactus.xml構成ファイルを作成します。

2. cactus-toolを実行します。

java -jar cactus-tool.jar





デフォルトでは、cactus-toolに必要な-cオプションは1つだけです(cactus.xmlを含むフォルダーへのパス)。

次のオプションもあります。

-d --cで指定されたディレクトリからのjsファイルへの相対パス

-o-難読化の結果を含むディレクトリへの相対ポイント。 指定しない場合、結果は-dディレクトリに配置されます

-m -PRODUCTION / DEBUG操作モード。 上で説明した。



使用例:

java -jar cactus-tool.jar -d ../web/js -o cache







構成ファイルの作成(XML)



設定ファイルの例:

 <?xml version="1.0" encoding="UTF-8"?> <cactus> <js> <needles> <needle> <output>ext-3.1.0.js</output> <files> <file>https://ajax.googleapis.com/ajax/libs/ext-core/3.1.0/ext-core-debug.js</file> </files> </needle> <needle> <output>jquery-1.5.2.js</output> <files> <file>https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.js</file> </files> </needle> </needles> </js> <css> <needles> <needle> <output>test.css</output> <files> <file>YOUR_CSS_FILE_HERE</file> </files> </needle> </needles> </css> </cactus>
      
      







この例は、3つの出力ファイル(実際には針、つまり針、したがってサボテン)の出力ファイル(ext-3.1.0.js、jquery-1.5.2.js、test.css)を含む構成ファイルを示しています。



起動後:

mkdir cactus-test

cd cactus-test

//copy cactus.xml and cactus-tool.jar in cactus-test folder

java -jar cactus-tool.jar -c PATH_TO_CACTUS_CONFIG_FOLDER






-結果として2つのjsファイルを取得します。



ファイルタグを使用すると、URL、パス、ファイル名を入力できます。 すべてのフォルダーは、BASEディレクトリー(-c)内になければなりません。 たとえば、構造の場合:

|-root

|--batch

| | - cactus-tool.jar

|--webapp

|----js

| |--cactus.xml

| |--boo.js

| |--foo.js

| |--utils

| | |--array.js

| | |--string.js

| | |--parser

| | | |--xmlparser.js

| |--cache








次のcactus.xmlが必要です。

 <?xml version="1.0" encoding="UTF-8"?> <cactus> <js> <needles> <needle> <output>test.js</output> <files> <file>boo.js</file> <file>utils</file> <!-- get all js files from utils folder--> <file>utils/parser/xmlparser.js</file> </files> </needle> </needles> </js> </cactus>
      
      







次に、ルート/バッチディレクトリからcactus-toolを実行します。

java -jar cactus-tool.jar -c ../webapp/js -d ../webapp/js -o cache





この例では、cactus.xmlはjsディレクトリにあるため、-cオプションと-dオプションは同じです。

その結果、ルート/ webappjs /キャッシュフォルダーにtest.jsファイルを取得します。これは、boo.jsファイル、utilsディレクトリのすべてのファイル、utils / parser / xmlparser.jsのマージと難読化の結果です。

ファイルタグのシーケンスは重要であり、結果としてファイルが接着される順序を反映します。



UPD

膨大な量の不必要な論争をcutするために、 YUI Compressorが難読化に使用されていることをもう一度書きます。

Cactus自体は、js / cssファイルのアセンブリと圧縮を簡素化するために書かれています。

例:

圧縮前

圧縮後



All Articles